jQuery Ajax Abfrage synchron durchführen

Zwar steht AJAX für Asynchronous JavaScript, aber trotzdem kann man solche Abfragen auch synchron durchführen. Mit jQuery kann man das ganze dabei wie folgt bewerkstelligen:

$.ajax({url: "getName.php", 
	type: "get",
	data:{lang:"american"},
	success: function(result){
		name=result;
}, async: false});

Wichtig ist, das der Schlüssel async auf false gesetzt ist – das Verhalten ist in neueren Versionen von jQuery als veraltet gekennzeichnet, kann aber noch genutzt werden.

Der Internet Explorer und Comboboxen

AJAX ist schon eine feine Sache. Wenn die Daten dann zurückkommen und man damit eine Combobox füllen möchte so sieht das meist so aus:

function showData() {
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
    document.getElementById("combobox").innerHTML = xmlHttp.responseText;
  }
}

Es gibt hierbei bloß ein Problem, der Internet Explorer mag es einfach nicht. Während dieser Code mit Chrome, Firefox, Opera et cetera wunderbar funktioniert, gibt es beim Internet Explorer ein Problem. Er hat Probleme mit dem innerHTML und füllt es einfach nicht.

Damit man nun nicht seinen ganzen Code umschreiben muss gibt es auf http://www.fpruefer.de/blog/archives/innerHTML-und-die-Select-Box-2009-08-04.html eine interessante Funktion welche sich das outerHTML nimmt (welches der Internet Explorer unterstützt) und dort die <select> Tags ausspart und nur alles zwischen diesen Tags ändert. Die Funktion welche die Arbeit dabei erledigt sieht dabei so aus:

function fillSelect(pList, pOptionHTML)
{
  if (pList) {
    if (pList.outerHTML) {
      var begin = pList.outerHTML.match(/(<select .*?>)/i);
      var end   = pList.outerHTML.match(/(<\/select>)/i);

      if (begin && end) {
        var s = begin[1] + pOptionHTML + end[1];
        pList.outerHTML = s;
      }
   }
  else {
    pList.innerHTML = pOptionHTML;
    }
  }
}

Angewendet wird sie dann so:

fillSelect(document.getElementById("combobox"), xmlHttp.responseText);

Und schon ist dieses Problem Geschichte :)

Weitere Informationen gibt es unter:
http://support.microsoft.com/kb/276228/de

AJAX Tutorial

Wer auf der Suche nach einem schönen AJAX Tutorial ist dem sei die Seite http://www.admin-wissen.de/tutorials/eigene-tutorials/webentwicklung/ajax-tutorial/ empfohlen.

Neben diesem Tutorial gibt es auf http://www.admin-wissen.de auch noch viele andere nützliche Tutorials unterschiedlichster Themen so z.B. aus den Themenbereichen Netzwerktechnik, Programmierung, Bildbearbeitung, Webentwicklung und Linux. Daneben bietet die Seite auch noch eine Tutorialdatenbank an in der man nach belieben stöbern kann.

PHP und AJAX

Da ich mich ein bisschen mit PHP und AJAX beschäftigt habe und ich nach ein paar Codebeispielen gesucht habe bin ich auf die Seite http://www.w3schools.com/ bzw. auf dessen PHP Bereich welcher unter http://www.w3schools.com/PHP/ zu gestoßen. Die Seite bietet viele interessante Beispielcodes. Auf alle Fälle lohnenswert :)

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Ajax_(Programmierung)
http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP