Hauptmenü

Untermenü

DOM-Manipulation JavaScript - Praxistutorial 2 - Der PHP-Code

1. Die Abschnitte

2. Firebug

Wie kann man eigentlich PHP-Code bei einem Ajax-Request vernünftig debuggen? Man sieht ja nichts! Doch tut man, wenn der Firebug im Firefox installiert wurde. Und bitte macht das. Ihr erspart euch eine Menge Arbeit! Wenn ihr da bei den Optionen "Show XMLHtttpRequests" aktiviert habt, so bekommt ihr unter "Console" das Ergebnis zu Gesicht, sobald ihr links neben dem "POST" erst auf das Plus-Zeichen und dann auf "Response" klickt. Und das könnte in diesem Fall so aussehen.

firebug

Das ist dann das Ergebnis, was uns hier die request.php zurückliefert. Ist auch ganz hervorragend zur Fehlersuche geeignet, da ihr bei einem solchen auch einen Meldung eures PHP-Parsers zu Gesicht bekommt, wenn der mit eurem Code nicht einverstanden ist.

3. Daten abfragen

Wie ich schon sagte, ist der Code nicht der Besten einer. Aber sei es drum, hier geht es ja primär um JavaScript, daher werde ich auch nur sehr kurz darauf eingehen. Wichtig ist hier erst mal der Abschnitt innerhalb der Bedingung if (empty($_GET['id'])). Da bauen wir uns zuerst eine Abfrage zusammen, holen uns dann die Ergebnisse lassen sie anschließend aufsteigend sortieren. Im Anschluss daran verknüpfen wir die Werte und bauen eine "XML-Zeichenkette" daraus. Wichtig dabei ist, dass die Tags genau so(!) heißen wie die Namen der jeweiligen select-Felder. Warum, werdet ihr später erfahren.


$data .= '<stundensatz>'.implode(',',$stundensatz).'</stundensatz>';
$data .= '<kenntnisse>'.implode(',',$kenntnisse).'</kenntnisse>';
// usw.

Eine Ausnahme bilden die folgenden Codeblöcke. Da überprüfen wir, ob bei einer Agentur ein Eintrag für ein Logo oder eine Adresse vorhanden ist. Und dann legen wir pro Treffer ein eigenes XML-Tag mit den entsprechenden Informationen fest. Das brauchen wir später für die Detailinformationen.


$agenturen[$row['id']]['namen']  = $row['namen'];
if (!empty($row['logo']) || !empty($row['adresse']))
{
  $agenturen[$row['id']]['info'] = 1;
}
else
{
  $agenturen[$row['id']]['info'] = 0;
}
...
foreach ($agenturen as $key => $value)
{
  $data .= '<agentur id="'.$key.'" info="'.$value['info'].'">'.
           $value['namen'].'</agentur>'."\n";
}

4. Das XML-Dokument ausgeben

Jetzt kommt das wirklich Wichtige. Zuerst sollte man auf jeden Fall die entsprechenden Basis-Informationen zum Typ angeben. Anschließend benötigt man ein Wurzelelement, um ein valides XML-Dokument zu erzeugen. Darin packt man dann die Informationen, sendet den entsprechenden Header und gibt das komplette XML-Dokument per echo aus.


$xml  '<?xml version="1.0" encoding="ISO8859-1"'."\n";
$xml .= '<output>'."\n";
$xml .= $data;
$xml .= '</output>';
header('Content-Type: text/xml');
echo $xml

Sorry

.. dass ich hier nicht auf die Details eingehe, aber das sind PHP-Grundlagen und hat weder mit Ajax noch mit der DOM-Manipulation zu tun. Wen es trotzdem interessiert, der sollte sich den Code mal genauer unter die Lupe nehmen, um ihn zu verstehen.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt