مثال‌های پایگاه داده 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)
  // برای IE7+, Firefox, Chrome, Opera, Safari کد نوشته شده است
  xmlhttp=new XMLHttpRequest();
  }
else
  // برای IE6, IE5 کد نوشته شده است
  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

صفحه‌ای که این جاوااسکریپت به آن فراخوانی می‌کند، یک فایل 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("<td>" & x.value & "</td></tr>")
  next
  rs.MoveNext
loop
response.write("</table>")
%>