Base de données AJAX
AJAX peut être utilisé pour communiquer de manière interactive avec la base de données.
Exemple de base de données AJAX
L'exemple suivant montrera comment une page Web lit les informations de la base de données via AJAX :
Exemple
Explication des exemples - Page HTML
Quand Lorsque l'utilisateur sélectionne un client dans la liste déroulante ci-dessus, une fonction nommée "showCustomer()" est exécutée. Cette fonction est déclenchée par l'événement "onchange" :
<html>
<head>
<script>
function showCustomer (str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code pour IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code pour IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.statut==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getcustomer .asp ?q="+str,true);
xmlhttp.send();
}
</script>
</head
<body>
<form>
<select name="customers" onchange="showCustomer(this.value)">
<option value="">Sélectionnez un client :</option> ;
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">Nord/Sud</option>
<option value="WOLZA "> ;Wolski Zajazd</option>
</select>
</form>
<br>
<div id="txtHint">Les informations client seront répertoriées ici ..</div>
</body>
</html>
Explication du code source :
Si aucun client n'est sélectionné (str.length==0), alors cette fonction effacera l'espace réservé txtHint puis quittera la fonction.
Si un client a été sélectionné, la fonction showCustomer() effectue les étapes suivantes :
Crée un objet XMLHttpRequest
Créer une fonction qui s'exécute lorsque la réponse du serveur est prête
Envoyer une requête à un fichier sur le serveur
Notez le paramètre (q ) ajouté à la fin de l'URL ) (contient le contenu de la liste déroulante)
Fichier ASP
La page du serveur appelée par JavaScript ci-dessus est un document ASP nommé « getcustomer.asp ».
Le code source dans "getcustomer.asp" exécute une requête sur la base de données et renvoie les résultats dans un tableau HTML :
response.expires= - 1
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & "'" & request.querystring("q") & "'"
set conn=Server. ("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>")
faire jusqu'à rs.EOF
pour chaque x dans rs.Fields
response.write("<tr><td><b>" & x.name & "</b></td>")
response.write ( "<td>" & x.value & "</td></tr>")
suivant
rs.MoveNext
loop
response.write("</ table> ;")
%>