AJAX Chinese Re...login
AJAX Chinese Reference Manual
author:php.cn  update time:2022-04-12 16:00:57

AJAX database



AJAX can be used to dynamically communicate with the database.


AJAX Database Example

The following example will demonstrate how a web page reads information from the database through AJAX: Please select a customer from the drop-down list below:

Instance

<html><!DOCTYPE html>
<html>
<head>
<script>
function showCustomer(str)
{
var xmlhttp;    
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for 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","/try/ajax/getcustomer.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<form action=""> 
<select name="customers" onchange="showCustomer(this.value)" style="font-family:Verdana, Arial, Helvetica, sans-serif;">
<option value="APPLE">Apple Computer, Inc.</option>
<option value="BAIDU ">BAIDU, Inc</option>
<option value="Canon">Canon USA, Inc.</option>
<option value="Google">Google, Inc.</option>
<option value="Nokia">Nokia Corporation</option>
<option value="SONY">Sony Corporation of America</option>
</select>
</form>
<br>
<div id="txtHint">Customer info will be listed here...</div>

</body>
</html>

Run Instance»

Click "Run Instance" "Button to view online instances



Instance explanation - showCustomer() function

When the user selects a customer in the drop-down list above, the name will be executed is the function of "showCustomer()". This function is triggered by the "onchange" event:

function showCustomer(str)
{
var xmlhttp;
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for 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.html?q="+str,true);
xmlhttp.send();
}

showCustomer() function performs the following tasks:

  • Check whether a customer has been selected

  • Create an XMLHttpRequest object

  • Execute the created function when the server response is ready

  • Send the request to the file on the server

  • Please Note that we added a parameter q to the URL (with the content from the input field)


AJAX Server Page

The server page called by the JavaScript above It's a PHP file named "getcustomer.php".

It's also easy to write server files in PHP, or in other server languages. See corresponding example written in PHP.

The source code in "getcustomer.php" is responsible for querying the database and then returning the results in an HTML table:

<%
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>")
​ next
​ rs.MoveNext
loop
response.write("</table>")
%>

php.cn