AJAX 数据库

ajax database 实例

 function showcustomer(str)
{
  var xmlhttp;    
  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","/try/ajax/getcustomer.php?q="+str,true);
  xmlhttp.send();
}

ajax 可用来与数据库进行动态通信。

ajax 数据库实例

下面的例子将演示网页如何通过 ajax 从数据库读取信息: 请在下面的下拉列表中选择一个客户:

实例

apple computer, inc. baidu, inc canon usa, inc. google, inc. nokia corporation sony corporation of america
客户信息将显示在这...



实例解释 - showcustomer() 函数

当用户在上面的下拉列表中选择某个客户时,会执行名为 "showcustomer()" 的函数。该函数由 "onchange" 事件触发:

function showcustomer(str) { var xmlhttp; 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","/try/ajax/getcustomer.php?q="+str,true); xmlhttp.send();}

showcustomer() 函数执行以下任务:

  • 检查是否已选择某个客户
  • 创建 xmlhttprequest 对象
  • 当服务器响应就绪时执行所创建的函数
  • 把请求发送到服务器上的文件
  • 请注意我们向 url 添加了一个参数 q (带有输入域中的内容)

ajax 服务器页面

由上面的 javascript 调用的服务器页面是 php 文件,名为 "getcustomer.php"。

用 php 编写服务器文件也很容易,或者用其他服务器语言。请看用 php 编写的相应的例子

"getcustomer.php" 中的源代码负责对数据库进行查询,然后用 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("")
do until rs.eof
  for each x in rs.fields
    response.write("")
    response.write("")
  next
  rs.movenext
loop
response.write("
" & x.name & " " & x.value & "
")
相关文章