AJAX Veritabanı Örneği

AJAX, veritabanı ile iki yönlü iletişim için kullanılabilir.

AJAX Veritabanı Örneği

Aşağıdaki örnek, web sayfasının veritabanından AJAX ile bilgi okumasını nasıl gerçekleştirdiğini gösterir:

Müşteri bilgileri burada listelenecektir.

Kaynak kodu kendiniz deneyin

Örnek Açıklama - HTML Sayfası

Kullanıcı yukarıdaki açılır listeden bir müşteri seçtiğinde, "showCustomer()" adlı fonksiyon çalışır. Bu fonksiyon "onchange" olayı tarafından tetiklenir:

<!DOCTYPE html>
<html>
<head>
<script>
function showCustomer(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  // IE7+, Firefox, Chrome, Opera, Safari için kod
  xmlhttp=new XMLHttpRequest();
  }
else
  // IE6, IE5 için kod
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getcustomer.asp?q="+str,true);
xmlhttp.send();
}
</script>
</head
<body>
<form>
<select name="customers" onchange="showCustomer(this.value)">
<option value="">Seçin bir müşteri:</option>
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">North/South</option>
<option value="WOLZA">Wolski Zajazd</option>
</select>
</form>
<br>
<div id="txtHint">Müşteri bilgileri burada listelenecektir...</div>
</body>
</html>

Kaynak kodu açıklaması:

Müşteri seçilmediyse (str.length 0'a eşit), bu fonksiyon txtHint yer tutucusunu temizler ve fonksiyondan çıkar.

Bir müşteri seçildiğinde, showCustomer() fonksiyonu aşağıdaki adımları gerçekleştirir:

  • XMLHttpRequest nesnesi oluşturun
  • Sunucu yanıtı hazır olduğunda çalışacak fonksiyon oluşturun
  • Sunucudaki dosyaya istek gönderin
  • URL sonuna eklenen parametreleri (q) (aşağıdaki liste içerikleri) dikkatlice ekleyin

ASP dosyası

Bu JavaScript çağrısının sunucu sayfası, "getcustomer.asp" adlı ASP dosyasıdır.

getcustomer.asp dosyasındaki kaynak kodu, veritabanına yönelik bir sorgu gerçekleştirir ve ardından sonuçları HTML tablosunda döndürür:

<%
response.expires=-1
sql="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,conn
response.write("<table>")
do until rs.EOF
  for each x in rs.Fields
    response.write("<tr><td><b>" & x.name & "</b></td>")
    response.write("<td>" & x.value & "</td></tr>")
  ileri
  rs.MoveNext
döngü
response.write("</table>")
%>