Hauptmenü

Untermenü

DOM-Manipulation JavaScript - Praxistutorial 2 - Noch eine Anfrage

1. Die Abschnitte

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(artid)
{
  ...
  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 == && 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