當前位置:首頁 » 數據倉庫 » ajax循環添加資料庫資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ajax循環添加資料庫資料庫

發布時間: 2023-06-02 22:58:00

1. ajax調用資料庫

大致是兩個步驟:客戶端觸發讀取數據請求,伺服器端接收請求查詢資料庫並返回結果。


1、客戶端請求

假設從頁面的下拉列表中選擇一個客戶,當用戶在下拉列表中選擇某個客戶時,會執行名為"showCustomer()"的函數。該函數由"onchange"事件觸發:

functionshowCustomer(str)
{
varxmlhttp;
if(str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if(window.XMLHttpRequest)
{//codeforIE7+,Firefox,Chrome,Opera,Safari
xmlhttp=newXMLHttpRequest();
}
else
{//codeforIE6,IE5
xmlhttp=newActiveXObject("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*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("<tr><td><b>"&x.name&"</b></td>")
response.write("<td>"&x.value&"</td></tr>")
next
rs.MoveNext
loop
response.write("</table>")
%>

2. 怎樣用ajax連接資料庫

$.ajax({
type:'POST',url:'submitcomment.php',timeout:2000,cache:true,
data:'dataid='+dataid+'&appid='+appid+'&name='+name.val()+'&txt='+txt.val()+'&openid='+openid,
error:function(msg){return false},
success:function(json, st){
if(json.result == 0){
alert('您的評論審核通過後,才會顯示出來!');
}else{ //否則審核通過,顯示出來
$("#comlistx0014jwh62k").html(json);
}
}
});

後台submitcomment.php代碼:

<?php

include("connect.php");//連接資料庫文件
echo '<pre>',var_mp($_REQUEST['appid']),'</pre>';
echo '<pre>',var_mp($_REQUEST['name']),'</pre>';
die();

//mysql_query("INSERT INTO biao(name,txt) VALUES ('$_POST["name"]','$_POST["txt"]');
?>

3. 關於Ajax如何連接資料庫

Ajax連接資料庫是通過ajax調用後台servlet,然後servlet請求介面實現的。
比如有頁面ajax實現方法:
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();
}

後台servlet寫法:
response.expires=-1
//定義sql 進行結果檢索
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>")
以上就把結果查詢出來了,並且放在response中,頁面ajax獲取結果就可以處理了。