AJAX是客户端的,你肯定不能直接在前台javascript中访问服务端的数据库。
用AJAX第一步,你必需要写好服务端的一个方法,如写一个删除的方法doDelObject(string id){...}你在客户端就调用这个方法。参数是你要删除数据的ID,如:doDelObject(ID001),然后服务端删除完毕后就会返回这个方法的值给你。删除的具体方法那就和AJAX无关了。
另外,做AJAX有好多框架选择,建议你用jquery,如果是.net2003的话有ajaxpro,2005的话有AjaxControlToolkit等。
在触发方法里捕获输入的值,作为参数用ajax发送请求。请求页面里根据这个参数查询数据库返回结果。---简单示意---
<script type = "text/javascript ">
var xmlHttp
function doStart(value)
{
var namevalue = value
createxmlHttpRequest()
var url = "请求页面 name= "+namevalue
xmlHttp.open( "get ",url , true)
xmlHttp.onreadystatechange = startCallback
xmlHttp.send(null)
}
startCallback()
{
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var agevalue = xmlHttp.responseXML.getElementsByTagName( "age ").item(0).firstChild.nodeValue
var obj = document.getElementById( "inputbox1 ")
obj.value = agevalue
}
}
}
</script>
...
<input type= "text " id= "inputbox1 " onChange=Start(this.value) />
...
大致是两个步骤:客户端触发读取数据请求,服务器端接收请求查询数据库并返回结果。
1、客户端请求
假设从页面的下拉列表中选择一个客户,当用户在下拉列表中选择某个客户时,会执行名为 "showCustomer()" 的函数。该函数由 "onchange" 事件触发:
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.asp?q="+str,true)
xmlhttp.send()
}
2、服务器端响应,asp示例:
<%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>")
%>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)