PHP AJAX et instance XML
AJAX peut être utilisé pour communiquer de manière interactive avec le fichier XML.
instance XML AJAX
Les exemples suivants démontrent comment une page Web via AJAX la lecture des informations à partir d'un fichier XML:
Exemples
Exemples expliquent - page HTML
Quand un utilisateur dans la liste déroulante ci-dessus pour sélectionner un double CD, il effectue son nom "(showCD)" fonction. Cette fonction par l'événement "onchange" est déclenchée:
<html> <head> <script> function showCD(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行 xmlhttp=new XMLHttpRequest(); } else { // 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","getcd.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> Select a CD: <select name="cds" onchange="showCD(this.value)"> <option value="">Select a CD:</option> <option value="Bob Dylan">Bob Dylan</option> <option value="Bonnie Tyler">Bonnie Tyler</option> <option value="Dolly Parton">Dolly Parton</option> </select> </form> <div id="txtHint"><b>CD info will be listed here...</b></div> </body> </html>
fonction showCD () effectue les étapes suivantes:
- Vérifiez si le CD est sélectionné
- Créer un objet XMLHttpRequest
- Créer la fonction lorsque le serveur est prêt à effectuer la réponse
- Dossier sur le serveur pour envoyer des demandes
- S'il vous plaît note ajoutée à la fin du paramètre d'URL (q) (contient le contenu de la liste déroulante)
Fichier PHP
Les serveurs ci-dessus par le biais de JavaScript appelant cette page est appelé fichier PHP "getcd.php".
script PHP pour charger un document XML, " cd_catalog.xml ", pour exécuter des requêtes contre fichier XML et renvoie le résultat au format HTML:
<?php $q=$_GET["q"]; $xmlDoc = new DOMDocument(); $xmlDoc->load("cd_catalog.xml"); $x=$xmlDoc->getElementsByTagName('ARTIST'); for ($i=0; $i<=$x->length-1; $i++) { // 处理元素节点 if ($x->item($i)->nodeType==1) { if ($x->item($i)->childNodes->item(0)->nodeValue == $q) { $y=($x->item($i)->parentNode); } } } $cd=($y->childNodes); for ($i=0;$i<$cd->length;$i++) { // 处理元素节点 if ($cd->item($i)->nodeType==1) { echo("<b>" . $cd->item($i)->nodeName . ":</b> "); echo($cd->item($i)->childNodes->item(0)->nodeValue); echo("<br>"); } } ?>
Lorsque la requête de CD est envoyé à partir de JavaScript à la page PHP va se produire:
- PHP créer objet DOM XML
- Trouver tous <artiste> avec JavaScript prêchait noms correspondants de données
- album de sortie de l'information, et renvoie l'espace réservé "txtHint"