Exemple Base de données AJAX

AJAX peut être utilisé pour communiquer de manière interactive avec la base de données.

Exemple Base de données AJAX

Le suivant est un exemple de démonstration : comment une page web lit des informations à partir de la base de données via AJAX :

Exemple

Les informations client seront affichées ici.

Essayez-le vous-même

Exemple d'explication - fonction showCustomer()

Lorsque l'utilisateur sélectionne un client dans la liste déroulante ci-dessus, la fonction "showCustomer()" est exécutée. Cette fonction est onchange événement déclenché :

showCustomer

function showCustomer(str) {
  var xhttp; 
  if (str == "") {
    document.getElementById("txtHint").innerHTML = "";
    return;
  }
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState  == 4 && this.status == 200) {
    document.getElementById("txtHint").innerHTML  = this.responseText;
    }
  };
  xhttp.open("GET",  "getcustomer.asp?q=" + str, true);
  xhttp.send();
} 

La fonction showCustomer() s'effectue comme suit :

  • Vérifier si le client a été sélectionné
  • Créer un objet XMLHttpRequest
  • Créer une fonction qui s'exécute lorsque le serveur est prêt à répondre
  • Envoyer une requête à un fichier sur le serveur
  • Veuillez noter que le paramètre q est ajouté à l'URL (contenant du contenu avec une liste déroulante)

Page serveur AJAX

La page serveur appelée par le JavaScript est le fichier ASP nommé "getcustomer.asp".

Il est facile de réécrire ce fichier serveur en PHP ou en autre langage serveur.

Voir l'exemple PHP correspondant

Le code source de "getcustomer.asp" exécute une requête orientée base de données et affiche les résultats dans un tableau 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("customers.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>")
 suivant
 rs.MoveNext
boucle
response.write("</table>")
%>