tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
950
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Mar 2004
    Ort
    Tiefste Provinz
    Beiträge
    304
    Guten Morgen,
    ich fange grade an, mich mit Ajax zu beschäftigen und will mir das erst mal selbst erarbeiten anstatt fertige Frameworks zu verwenden. Ich will's halt von Grund auf kapieren.

    Jetzt hänge ich an einer Sache fest, die doch eigentlich nicht so schwer sein kann:

    Ich will per responseXML eine XML-Datei einlesen die just bei der Anfrage per PHP erzeugt werden soll. Offensichtlich ist es aber so, dass die XML-Datei hierfür die Endung .xml haben muss. Und um vorher von PHP geparst zu werden, muss die Datei jadoch die Endung .php haben. Ein echtes Dilemma...

    Das muss doch irgendwie gehen, oder? Erst in Kombination mit einer serverseitige Scriptsprache entfaltet doch Ajax erst sein gesamtes Potential. Hab mit mod_rewrite rumprobiert aber das kann doch nicht sein, dass man zu solchen Mitteln greifen muss, oder?

    Verratet mir doch mal schnell den Trick, bitte.
     
    Martin

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Am bequemsten aber nicht unbedingt einfachsten ist es wohl mit PHPs DOM-Funktionen. Du kannst aber auch das Datenformat JSON nehmen, welches ich aufgrund seiner Datenreduktion gegenüber XML bevorzugen würde. Skripte zum Generieren dieses Formats gibt es bereits für alle relevaten Sprachen.

    Zu der Dateierweiterungsgeschichte: Solange die Daten mit richtigem Mime-Typ ausgeliefert werden, kann die Ressource bestimmt auch eine „php“-Dateierweiterung haben.
     
    Markus Wulftange

  3. #3
    Registriert seit
    Mar 2004
    Ort
    Tiefste Provinz
    Beiträge
    304
    JSON sieht gut aus, da steige ich dann auch mal ein.

    Vorher möchte ich aber - rein aus Prinzip - das mit dem XML hinkriegen. Du schreibst: "Solange die Daten mit richtigem Mime-Typ ausgeliefert werden...". Wie kann ich das sicher stellen? Hab's mit
    PHP-Code:
    header("Content-Type: text/xml;"); 
    probiert, klappt nicht...
     
    Martin

  4. #4
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Ich schicke mit AJAX ein Request an eine *.php-Datei und dort geb ich per echo() dann die Daten als XML aus... Bzw. ich lade eine XML als Template und parse sie dann, um den Code schön sauber zu halten Funktioniert einwandfrei bei mir...
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  5. #5
    Registriert seit
    Mar 2004
    Ort
    Tiefste Provinz
    Beiträge
    304
    Genau so mache ich das auch.
    Nur: bei mir liefert responseXML kein Objekt, das ich dann in JS mit DOM-Technik auswerten kann. Ein Beispiel:
    Die Anfrage geht an ajax_xml.php. Diese Datei holt ein paar Daten aus der Datenbank und liefert ewas in der Art:
    Code xml:
    1
    2
    3
    4
    5
    
    <?xml version="1.0" ?>
    <root>
        <opt val="1" txt="Hallo" />
        <opt val="2" txt="Welt" />
    </root>
    In JS - nach dem ganzen Anfrage-Einleitungs-Hickhack - kommt dann schließlich die entscheidende Zeile:
    Code javascript:
    1
    
    var xmldoc = ajax_request.responseXML;
    Nun sollte xmldoc ein verarbeitbares DOM-Objekt sein. So sollte bspw. die Zeile
    Code javascript:
    1
    
    alert(xmldoc.getElementsByTagName('root').item(0).firstChild.txt);
    "Hallo" ausspucken. Es kommt aber "undefined".
    Wenn ich eine exakt identische XML-Datei manuell erzeuge, dieser die Dateiendung .xml verpasse und dann die Anfrage dort hin schicke klappt alles einwandfrei.

    Übrigens @Gumbo: JSON hab' ich probiert, läuft wie geschmiert. Toll.
     
    Martin

Ähnliche Themen

  1. Eine XML-Datei für mehrere XSL-Dateien verwenden
    Von rojhan im Forum XML Technologien
    Antworten: 4
    Letzter Beitrag: 10.04.07, 22:25
  2. Antworten: 2
    Letzter Beitrag: 26.10.06, 11:39
  3. Antworten: 1
    Letzter Beitrag: 18.12.05, 10:44
  4. MYSQL: Wie aus der Datenbank eine XML Datei erzeugen?
    Von Erro im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 23.02.05, 12:39
  5. Mit ActionScript eine XML-Datei erzeugen und ablegen...
    Von Vaio82 im Forum Flash Plattform
    Antworten: 8
    Letzter Beitrag: 25.08.04, 10:27