AJAX Database
AJAX può essere utilizzato per comunicare dinamicamente con il database.
istanza di database AJAX
Il seguente esempio dimostrerà come una pagina web tramite la tecnologia AJAX per leggere le informazioni dal database: Selezionare un cliente nel seguente elenco a discesa:
Esempi spiegano - showCustomer function ()
Quando un utente nell'elenco a discesa sopra, selezionare un cliente, esegue chiama ") showCustomer (" la funzione. Questa funzione dall'evento "onchange" viene attivato:
{
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.html?q="+str,true);
xmlhttp.send();
}
Funzione showCustomer () esegue le seguenti operazioni:
- Verificare di aver selezionato un cliente
- Creare l'oggetto XMLHttpRequest
- Creare la funzione eseguita quando la risposta del server è pronto
- Invia la richiesta di un file sul server
- Si prega di notare che abbiamo aggiunto un parametro q (con il contenuto del campo di immissione) all'URL
pagina del server AJAX
Pagina Server chiamato dal JavaScript di cui sopra è un file PHP chiamato "getcustomer.php".
Scritto in PHP file del server facilmente, o altra lingua del server. Vedere l'esempio corrispondente scritto in PHP .
"Getcustomer.php" codice sorgente responsabile per la query di database, quindi restituisce i risultati in formato 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("<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>")
%>