Avatar billede mrfunder Nybegynder
30. marts 2007 - 12:50 Der er 5 kommentarer

Javascript-konsol giver fejl

Hej kloge hoveder!

Min javascript-konsol i Firefox giver mig følgende fejl i min kode:
Element er tilgået via ID/NAME i globalt scope. Brug WC3 standarden document.getElementByID() istedet for. Udover denne får jeg også en syntax fejl. Syntax fejlen ligger på siden hotel_data der retunere min tekst blandet med html. (Skal man på en måde fortælle Ajax at det er en en string blandet med html der retuneres? Umiddelbart virker det perfekt i både IE & Firefox, men jeg vil selvfølelig gerne sikre mig at der ingen fejl er overhovedet.

Hvordan kan dette gøres bedre? Mh. rettelse af syntaxfejl og korrekt getelementById? Det skal siges jeg ikke er nogen speciel stor haj til Ajax :-)

var http = getXMLHTTPRequest();

function getContent(id,name) {
    document.getElementById('titel').firstChild.nodeValue = name;
    document.getElementById('content').innerHTML = "<br><center>Henter position</center><br>";
    http.open("GET", "/cache/functions/fisk_data.php?id="+id);
    http.onreadystatechange = updateDiv;
    http.send(null);
}

function updateDiv() {
    if(http.readyState == 4) {
        if(http.status == 200) {
        startOpChange(info,60,1);
        document.getElementById('content').innerHTML = http.responseText;
      }
        else
    {
              document.getElementById('content').innerHTML = "<br /><center>An error has occurred during execution</center><br />";
        }
    }
      else
    {
        document.getElementById('content').innerHTML = "<br /><center>Henter position</center><br />";
    }
}

---------------fisk_data.php-------------------
<?php
header('Content-Type: text/xml; charset=iso-8859-1');
require "lib/page.php";
if(isset($_REQUEST["id"])) {
    $id = $_REQUEST[id];
    $getmyFish = mysql_query("SELECT `name`,`status` FROM `fish` WHERE `ownership` = '".$_SESSION[uid]."' AND `pos` = '$id'") or die(mysql_error());
    $thisFish = mysql_fetch_assoc($getmyFish);
        switch($thisFish['status']) {
        case 1:
            print "$thisFish[name]";
        break;
        case 2:
                  print "Fodring igang";
        break;
          default:
                  print "Du har endnu ingen fisk i dette akvarie.<br />Køb nu";
        break;
        }
} else {
    print "Error";
}
?>
Avatar billede roenving Novice
30. marts 2007 - 13:03 #1
I hvilken linje forekommer fejlen ?-)

-- og så er der ingen grund til at benytte sig af html, der sendes, du kan f.eks. vise/skjule et element, der fortæller om status og benytte dig af kloning af elementer, der skal vise dine data !-)
Avatar billede mrfunder Nybegynder
30. marts 2007 - 14:43 #2
Den forekommer i 'linje 1' mærkværdigt vis.. Linje 1 indeholder noget helt andet end det min javascript-konsol fortæller.. Og jeg bruger html fordi min tekst nogle gange skal være fed ved forskellige status etc..

Var der nogle fejl i min getelementById?
Avatar billede mrfunder Nybegynder
30. marts 2007 - 14:44 #3
Fejlen lyder forøvrigt sådan:

Syntax fejl i linje 1:
Efterfølgt af det content der printes f.eks. "Du har endnu ingen fisk i dette akvarie.<br />Køb nu"
Avatar billede roenving Novice
30. marts 2007 - 14:56 #4
Jeg kan ikke se nogen getElementById-fejl ...

-- og hvis du skal bruge forskellige visninger, laver du de to-tre måder, tingene skal vises på i nogle skjulte elementer, du kan vise eller klone, eller sætter f.eks. style-attributter ud fra parametre i responsen ...

-- f.eks. kan du sætte specielle tegn i din tekst, som fortæller, hvad der skal gøres, splitte på de tegn og bruge DOM til indsætning !-)
Avatar billede olebole Juniormester
30. marts 2007 - 15:03 #5
<ole>

innerHTML bør af mange årsager undgåes - og under XHTML eksisterer den slet ikke (uagtet, at de gængse browsere stadig understøtter property'en. Det gør de ikke under næste XHTML-version).

Hvad 'gemmmer' du i getXMLHTTPRequest? Jeg kan i hvertfald ikke se fejlen i den viste kode.

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester