AJAX dapat digunakan untuk berkomunikasi secara dinamis dengan database.
Contoh berikut akan menunjukkan bagaimana halaman web membaca informasi dari database melalui AJAX: Silakan pilih pelanggan di daftar drop-down di bawah:
Ketika pengguna memilih pelanggan dalam daftar drop-down di atas, fungsi bernama "showCustomer()" dijalankan. Fungsi ini dipicu oleh peristiwa "onchange":
fungsi tampilkan Pelanggan ( str ) { var xmlhttp ; jika ( str == " " ) { dokumen .getElementById ( " txtHint " ) innerHTML = " " ; jika ( jendela .XMLHttpRequest ) { // IE7+, Firefox, Chrome, Opera, kode eksekusi browser Safari xmlhttp = baru XMLHttpPermintaan ( ) ; kalau tidak { // IE6, kode eksekusi browser IE5 xmlhttp = baru ActiveXObject ( " Microsoft.XMLHTTP " ) ; xmlhttp.onreadystatechange = fungsi ( ) { jika ( xmlhttp .readyState == 4 && xmlhttp .status == 200 ) { dokumen .getElementById ( " txtHint " ) innerHTML = xmlhttp . } xmlhttp buka ( " DAPATKAN " , " /try/ajax/getcustomer.php?q= " + str , benar ) xmlhttp kirim ( ) ;Fungsi showCustomer() melakukan tugas-tugas berikut:
Periksa apakah pelanggan telah dipilih
Buat objek XMLHttpRequest
Jalankan fungsi yang dibuat ketika respons server siap
Kirim permintaan ke file di server
Perhatikan bahwa kami menambahkan parameter q ke URL (dengan isi kolom input)
Halaman server yang dipanggil oleh JavaScript di atas adalah file PHP bernama "getcustomer.php".
Menulis file server dalam PHP atau bahasa server lainnya juga mudah. Lihat contoh terkait yang ditulis dalam PHP.
Kode sumber di "getcustomer.php" bertanggung jawab untuk menanyakan database dan mengembalikan hasilnya dalam tabel HTML:
<%response.expires=-1sql="PILIH * DARI PELANGGAN DIMANA PELANGGAN="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>")lakukan hingga rs.EOF untuk setiap x di rs.Fields respon.write("<tr><td><b>" & x.nama & "</b></td>") respon.write("<td>" & x. nilai & "</td></tr>") berikutnya rs.MoveNextloopresponse.write("</table>")%>