AJAX Veritabanı Örneği
- Önceki Sayfa AJAX ASP
- Sonraki Sayfa ASP Hızlı Referans
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:
Ö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>") %>
- Önceki Sayfa AJAX ASP
- Sonraki Sayfa ASP Hızlı Referans