DOM-Manipulation JavaScript - Praxistutorial 2 - Noch eine Anfrage
1. Die Abschnitte
- Einführung
- Die Initialisierung
- Anfrage vorbereiten
- Daten zusammenstellen
- Anfrage senden
- Der PHP-Code
- Das Ergebnis auswerten
- Die select-Felder manipulieren
- Die Ergebnisse ausgeben
- Die Links generieren
- Noch eine Anfrage
- Inhalte einfügen
- Ein paar Anmerkungen
2. Eigentlich
... hätten wir uns diesen Schritt sparen können, wenn wir die Information, die wir uns jetzt holen wollen, schon direkt beim
ersten Request in das XML-Dokument geschrieben hätten. Allerdings hättet ihr dann auch nicht erfahren, wie einfach solche
Anfragen per GET
gesendet werden können. Also nicht rumnölen, alles hat hier seinen Grund.
Vorbereitung
Zunächst mal müssen wir in der Methode prepareRequest
die Bedingung um folgenden Code erweitern. Die Variable
str
enthält diesmal nur einen Wert, also brauchen wir da nichts zu verknüpfen wie noch vorher.
this.prepareRequest = function(art, id)
{
...
if ('post' == art)
{
...
}
else
{
str = '&id=' + id;
sendGetRequest();
}
...
}
3. Die Methode sendGetRequest
function sendGetRequest(id)
{
var ie_rand = parseInt(Math.random() * 999999);
ajax_obj.open (
'GET',
'request.php?rand=' + ie_rand + str,
true
);
ajax_obj.send(null);
ajax_obj.onreadystatechange = function ()
{
if (ajax_obj.readyState == 4 && ajax_obj.status == 200)
{
xml = ajax_obj.responseXML;
showDetails();
}
}
}
Erläuterung
Hier werde ich nur auf die Unterschiede zu sendPostRequest
eingehen. Zunächst mal ändern wir bei ajax_obj.open
den Parameter für die Übertragungsart in GET
und hängen die Variable str
direkt an den Link an. Ja, mir
ist auch gerade aufgefallen, dass wir hier ie_rand
noch mal definieren, was eigentlich nicht sehr sauber ist. Aber sei's
drum.
Da wir die Daten diesmal nicht per POST
senden, müssen wir den entsprechenden Formular-Header auch nicht per
setRequestHeader
übergeben. Und da wir die Informationen ja bereits im GET
-Parameter schicken, müssen wir
diesmal auch nichts zusätzlich senden (ajax_obj.send(null);
).
So, was passiert nun? Das PHP-Script bekommt die ID der Agentur übergeben und liest das Logo sowie die Anschrift (sofern jeweils vorhanden) aus der Datenbank aus und gibt sie im XML-Dokument zurück. Schaut es euch im Firebug an, dann wisst ihr auch schon, was nun kommt.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt