AJAX kann zur dynamischen Kommunikation mit der Datenbank verwendet werden.
Das folgende Beispiel soll zeigen, wie eine Webseite über AJAX Informationen aus der Datenbank liest: Bitte wählen Sie in der Dropdown-Liste unten einen Kunden aus:
Wenn der Benutzer einen Kunden in der Dropdown-Liste oben auswählt, wird eine Funktion namens „showCustomer()“ ausgeführt. Diese Funktion wird durch das Ereignis „onchange“ ausgelöst:
Funktion showCustomer ( str ) { var xmlhttp ; wenn ( str == " " ) { document.getElementById ( " txtHint " ) . Wenn ( Fenster . XMLHttpRequest ) { // Ausführungscode für den Browser IE7+, Firefox, Chrome, Opera, Safari xmlhttp = neu XMLHttpRequest ( ) ; anders { // IE6-, IE5-Browser-Ausführungscode xmlhttp = neu ActiveXObject ( " Microsoft.XMLHTTP " ) ; xmlhttp.onreadystatechange = Funktion ( ) { Wenn ( xmlhttp . readyState == 4 && xmlhttp . status == 200 ) { document.getElementById ( " txtHint " ) . } xmlhttp . open ( " GET " , " /try/ajax/getcustomer.php?q= " + str , true ) ;Die Funktion showCustomer() führt die folgenden Aufgaben aus:
Überprüfen Sie, ob ein Kunde ausgewählt wurde
Erstellen Sie ein XMLHttpRequest-Objekt
Führen Sie die erstellte Funktion aus, wenn die Serverantwort bereit ist
Senden Sie die Anfrage an eine Datei auf dem Server
Beachten Sie, dass wir der URL einen Parameter q hinzugefügt haben (mit dem Inhalt des Eingabefelds).
Die vom oben genannten JavaScript aufgerufene Serverseite ist eine PHP-Datei mit dem Namen „getcustomer.php“.
Es ist auch einfach, Serverdateien in PHP oder anderen Serversprachen zu schreiben. Sehen Sie sich das entsprechende in PHP geschriebene Beispiel an.
Der Quellcode in „getcustomer.php“ ist für die Abfrage der Datenbank und die Rückgabe der Ergebnisse in einer HTML-Tabelle verantwortlich:
<%response.expires=-1sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="sql=sql & "'" & request.querystring("q") & "'"set conn=Server.CreateObject("ADODB.Connection")conn.Provider="Microsoft.Jet.OLEDB.4.0"conn.Open(Server.Mappath("/db/northwind.mdb"))set rs=Server.CreateObject( "ADODB.recordset")rs.Open sql,connresponse.write("<table>")do, bis rs.EOF für jedes x in rs.Fields Response.write("<tr><td><b>" & x.name & "</b></td>") Response.write("<td>" & x. value & "</td></tr>") next rs.MoveNextloopresponse.write("</table>")%>