Probleme mit AJAX und XML

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit AJAX und XML

    Hallo,

    ich verschuche grade mit ajax eine XML struktur zu übergeben, da ich mehrere daten auf einmal per ajax erhalten möchte..
    leider bekomme ich es nicht hin die xml korrekt zu verarbeiten

    hier kommt die ausgabe aus der php datei an und steht in der variable "txt" in "xml" steht "[object XMLDocument]" wenn ich das per alert() aufrufe
    PHP-Code:
    function successHandler(txtxml)
    {        
         
    id txt.getElementsByTagName("id")[0];
         
    message txt.getElementsByTagName("message")[0];        


    hier die PHP test datei die das xml erzeugt
    PHP-Code:
    header('Content-Type: text/xml; charset=utf-8'); // sorgt für die korrekte XML-Kodierung
    header('Cache-Control: must-revalidate, 
    pre-check=0, no-store, no-cache, max-age=0,
     post-check=0'); // ist mal wieder wichtig wegen IE


    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    echo "<new_post>\n";
    echo " <id>123</id>\n";
    echo " <message>test message</message>\n";
    echo "</new_post>\n";
    Der firebug sagt dazu folgendes
    PHP-Code:
    txt.getElementsByTagName is not a function 
    nun weiß ich selbt nicht mehr weiter, ob ich überhaupt am richtigen ansatz bin...

    vllt seid ihr ja schlauer

    DANKE schonmal!

  • #2
    Zitat von BananaJo Beitrag anzeigen
    hier kommt die ausgabe aus der php datei an und steht in der variable "txt"
    In welcher Form (Datentyp)?
    in "xml" steht "[object XMLDocument]" wenn ich das per alert() aufrufe
    Und warum wendest du die Methode dann nicht auf das an - scheint dir das nicht sinnvoller ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Frage: was steht denn in txt. Und was ist das genau? Möglicherweise wirfst du da was durcheinander. Denn eigentlich benötigst du dafür doch nur eine Variable und nicht zwei.

      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        also in der variable "txt" steht der String der von PHP script per echo ausgegeben wird..

        warum da jetzt 2 variablen sind, weiß ich nicht, war schon so

        nur wenn ich mit dem php script keine xml datei erzeuge, ist die wariable "xml" umdefined.. was dann auch soweit nicht schlipp ist, da ich dann mit "txt" arbeite.

        Wenn ich per PHP nun eine XML (wie im beispiel unten) erstelle, ist die variable "xml" dann auch "[object XMLDocument]"... wie soll ich die erzeugte xml struktur die in "txt" steht denn jetzt zerpflücken, so das ich an die einzelnen werte komme?

        Kommentar


        • #5
          der Hinweis war doch gerade eben umgekehrt vorzugehen .. ignoriere dein TXT und arbeite mit dem [object XMLDocument] aus der xml-variable ....

          das XML-Document sollte die beschriebenen Funktionen kennen ...
          [font=Verdana]
          Wer LESEN kann, ist klar im Vorteil!
          [/font]

          Kommentar


          • #6
            und dann so neu deklarieren?

            PHP-Code:

            id 
            xml.getElementsByTagName("id")[0];
            message xml.getElementsByTagName("message")[0]; 
            Zuletzt geändert von BananaJo; 11.10.2010, 23:04.

            Kommentar


            • #7
              so nun nach dem test

              ich erhalte bei

              PHP-Code:
              function successHandler(txtxml)
              {

              var 
              new_post xml.getElementsByTagName('new_post')[0];
              var 
              id new_post.getElementsByTagName('id')[0];
              var 
              message new_post.getElementsByTagName('message')[0];

              bei einem alert von id und message erhalte ich jeweils "[object Element]" angezeigt.. wie komme ich denn jetzt an die werte??

              Kommentar


              • #8
                Hallo,

                dazu musst du den Textknoten innerhalb des Elementknotens ansprechen und von dem wiederum die nodeValue-Eigenschaft abfragen.

                Beispiel:
                PHP-Code:
                alert(id.firstChild.nodeValue); // liefert 123 
                Alternativ kannst du auch die textContent-Eigenschaft des Elements selbst abrufen:

                PHP-Code:
                alert(id.textContent); // liefert 123 
                DOM lernen!

                Gruß,

                Amica
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  jaau danke!! das hat gefunzt

                  Kommentar

                  Lädt...
                  X