AJAX 数据库实例

AJAX کو دیتابیس کے ساتھ کھلدری مشق کی جاسکتی ہے。

AJAX 数据库实例

یہ مثال درست کرتا ہے کہ وہ کس طرح AJAX کے ذریعے دیتابیس سے معلومات حاصل کی جاتی ہیں:

مشتری کی معلومات یہاں درج کی جائیں گی。

آپ خود سورس کو بچاسکو

مثال توضیحی - HTML صفحہ

جب استعمال کار برائے بالا درجہ مندرجہ مشتری منتخب کرتا ہے تو اس سلسلے میں 'showCustomer()' کا فنکشن کا استعمال کیا جائے گا۔ یہ فنکشن 'onchange' واقعی کے ذریعے ترگیب دی جاتی ہے:

<!DOCTYPE html>
<html>
<head>
<script>
function showCustomer(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  // برائے آئی ای 7+, فائر فاکس, کروم, آپری، سافری کا کوڈ
  xmlhttp=new XMLHttpRequest();
  }
else
  // برائے آئی ای اے 6, آئی ای 5 کا کوڈ
  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=""> منتخب مشتری:</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">اطلاعات مشتری در اینجا لیست می‌شود...</div>
</body>
</html>

توضیحات کد منبع:

اگر مشتری انتخاب نشده باشد (str.length برابر با 0)، این تابع جاگذار txtHint را خالی می‌کند و از تابع خارج می‌شود.

اگر یک مشتری انتخاب شده باشد، تابع showCustomer() مراحل زیر را اجرا می‌کند:

  • ایجاد یک شیء XMLHttpRequest
  • ایجاد یک تابع که در آماده بودن پاسخ سرور اجرا می‌شود
  • درخواست به فایل روی سرور ارسال می‌شود
  • لطفاً توجه داشته باشید که پارامترهای اضافه شده به پایان URL (q) شامل محتوای لیست کشویی است

فایل ASP

صفحه سرور JavaScript که درخواست شده است یک فایل ASP به نام "getcustomer.asp" است.

کد منبع در getcustomer.asp یک بار برای جستجوی پایگاه داده اجرا می‌شود و سپس نتایج را در جدول HTML بازمی‌گرداند:

<%
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>")
تا rs.EOF
  برای هر x در rs.Fields
    response.write("<tr><td><b>" & x.name & "</b></td>")
    response.write("" & x.value & "")
  next
  rs.MoveNext
loop
response.write("")
%>