Exemple de base de données MySQL AJAX avec PHP
- Page précédente XML AJAX
- Page suivante responseXML AJAX
AJAX 可用来与数据库进行交互式通信。
AJAX 数据库实例
在下面的 AJAX 实例中,我们将演示网页如何使用 AJAX 技术从 MySQL 数据库中读取信息。
在下拉列表中选择一个客户
这个应用程序由四个元素组成:
- MySQL 数据库
- 一张简单的 HTML 表单
- JavaScript
- PHP 页面
数据库
数据库看起来类似这样:
id | CustomerID | CompanyName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|---|
1 | Alibaba | Alibaba Group | Ma Yun | ...... | Hangzhou | 310002 | China |
2 | APPLE | Apple Inc. | Tim Cook | ...... | Cupertino | 95014 | USA |
3 | BAIDU | BAIDU Inc. | Li YanHong | ...... | Beijing | 100080 | China |
4 | Canon | Canon USA Inc. | Tsuneji Uchida | ...... | New York | 11042 | USA |
Explication de l'exemple
Dans l'exemple ci-dessus, lorsque l'utilisateur sélectionne un client dans la liste déroulante ci-dessus, la fonction nommée "showUser()" est exécutée.
Cette fonction est déclenchée par l'événement onchange.
Voici le code HTML :
Exemple
<!doctype html> <html> <head> <script> function showUser(str) { 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 (this.readyState==4 && this.status==200) { document.getElementById("txtHint").innerHTML=this.responseText; } } xmlhttp.open("GET","/demo/getcustomer.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> <select name="users" onchange="showUser(this.value)"> <option value="">Sélectionnez un client :</option> <option value="1">Alibaba</option> <option value="2">APPLE</option> <option value="3">BAIDU</option> <option value="4">Canon</option> <option value="5">Google</option> <option value="6">HUAWEI</option> <option value="7">Microsoft</option> <option value="8">Nokia</option> <option value="9">SONY</option> <option value="10">Tencent</option> </select> </form> <br> <div id="txtHint"><b>Les informations client seront affichées ici.</b></div> </body> </html>
Explication du code :
Tout d'abord, vérifiez si un client a été sélectionné. Si aucun client n'a été sélectionné (str == ""), supprimez le contenu de txtHint et quittez la fonction. Si un client a été sélectionné, effectuez les opérations suivantes :
- Créer un objet XMLHttpRequest
- Créer une fonction à exécuter lorsque le serveur est prêt à répondre
- Envoyer la requête au fichier sur le serveur
- Veuillez noter que le paramètre (q) est ajouté à l'URL (contenant un contenu avec une liste déroulante)
Fichier PHP
La page appelée par JavaScript sur le serveur est un fichier PHP nommé "getuser.php".
Le code source de "getuser.php" effectue des requêtes sur la base de données MySQL et affiche les résultats dans un tableau HTML :
<?php $q = intval($_GET['q']); $con = mysqli_connect('MyServer','MyUser','MyPassword','Customers'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } $sql="SELECT * FROM customerslist WHERE id = '".$q."'"; $result = mysqli_query($con,$sql); echo "<table>"; while($row = mysqli_fetch_array($result)) { echo "<tr><th>CustomerID</th><td>" . $row['CustomerID'] . "</td></tr>"; echo "<tr><th>Nom de l'entreprise</th><td>" . $row['CompanyName'] . "</td></tr>"; echo "<tr><th>Nom du contact</th><td>" . $row['ContactName'] . "</td></tr>"; echo "<tr><th>Adresse</th><td>" . $row['Address'] . "</td></tr>"; echo "<tr><th>Ville</th><td>" . $row['City'] . "</td></tr>"; echo "<tr><th>Code postal</th><td>" . $row['PostalCode'] . "</td></tr>"; echo "<tr><th>Pays</th><td>" . $row['Country'] . "</td></tr>"; } echo "</table>"; mysqli_close($con); ?>
Explication : Lorsque une requête est envoyée de JavaScript vers un fichier PHP, le suivant se produit :
- PHP ouvre la connexion au serveur MySQL
- Le client correct a été trouvé
- Créez un tableau HTML, remplissez les données et envoyez le "txtHint" en tant que symbole de remplacement
- Page précédente XML AJAX
- Page suivante responseXML AJAX