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 & "
")