【 tulaoshi.com - Web开发 】
                             
                            网页制作Webjx文章简介:AJAX可用来与数据库进行动态地通信。  
  AJAX可用来与数据库进行动态地通信。  
  AJAX数据库实例  
  在下面的AJAX例子中,我们将演示如何使用AJAX技术令网页从数据库读取信息。  
  在下面的框中选择一个名字  
  请选择一位客户:AlfredsFutterkisteNorth/SouthWolskiZajazd  
  AJAX实例解释  
  上面的实例包含了一个简单的HTML表单以及执行JavaScript的链接:  
  html  
  head  
  scriptsrc="selectcustomer.js"/script  
  /head  
  body  
  form  
  请选择一位客户:  
  selectname="customers"onchange="showCustomer(this.value)"  
  optionvalue="ALFKI"AlfredsFutterkiste  
  optionvalue="NORTS"North/South  
  optionvalue="WOLZA"WolskiZajazd  
  /select  
  /form  
  p  
  divid="txtHint"b客户信息将在此处列出。/b/div  
  /p  
  /body  
  /html  
  正如您看到的,这是一个简单的带有一个名为"customers"下拉列表的HTML表单。  
  表单以下的段落包含了一个名为"txtHint"的div,这个div充当了由web服务器所取回的信息的位置占位符。  
  当用户选择数据时,名为"showCustomer()"的函数会被执行。函数的执行会被"onchange"事件触发。另外需要说明的是:每当用户改变下拉列表中的值,函数showCustomer就会被调用。  
  下面列出了JavaScript代码。  
  AJAXJavaScript  
  这是存储在文件"selectcustomer.js"中的JavaScript代码:  
  varxmlHttp  
  functionshowCustomer(str)  
  {  
  xmlHttp=GetXmlHttpObject();  
  if(xmlHttp==null)  
  {  
  alert("您的浏览器不支持AJAX!");  
  return;  
  }  
  varurl="getcustomer.asp";  
  url=url+"?q="+str;  
  url=url+"&sid="+Math.random();  
  xmlHttp.onreadystatechange=stateChanged;  
  xmlHttp.open("GET",url,true);  
  xmlHttp.send(null);  
  }  
  functionstateChanged()  
  {  
  if(xmlHttp.readyState==4)  
  {  
  document.getElementById("txtHint").innerHTML=xmlHttp.responseText;  
  }  
  }  
  functionGetXmlHttpObject()  
  {  
  varxmlHttp=null;  
  try  
  {  
  //Firefox,Opera8.0+,Safari  
  xmlHttp=newXMLHttpRequest();  
  }  
  catch(e)  
  {  
  //InternetExplorer  
  try  
  {  
  xmlHttp=newActiveXObject("Msxml2.XMLHTTP");  
  }  
  catch(e)  
  {  
  xmlHttp=newActiveXObject("Microsoft.XMLHTTP");  
  }  
  }  
  returnxmlHttp;  
  }AJAX服务器页面  
  这个被JavaScript调用的服务器页面,是一个名为"getcustomer.asp"的简单的ASP文件。  
  此页面使用VBScript针对IIS编写。可以使用PHP或其他服务器语言对它进行改写。  
  此代码可运行针对某个数据库的SQL,并以HTML表格返回结果:  
  %  
  response.expires=-1  
  sql="SELECT*FROMCUSTOMERSWHERECUSTOMERID="  
  sql=sql&"'"&request.querystring("q")&"'"  
  setconn=Server.CreateObject("ADODB.Connection")  
  conn.Provider="Microsoft.Jet.OLEDB.4.0"  
  conn.Open(Server.Mappath("/db/northwind.mdb"))  
  setrs=Server.CreateObject("ADODB.recordset")  
  rs.Opensql,conn  
  response.write("table")  
  dountilrs.EOF  
  foreachxinrs.Fields  
  response.write("trtdem"&x.name&"/em/td")  
  response.write("td"&x.value&"/td/tr")  
  next  
  rs.MoveNext  
  loop  
  response.write("/table")  
  %