Exemple PHP - AJAX et XML

Exemple PHP - AJAX et XML

AJAX peut être utilisé pour communiquer de manière interactive avec des fichiers XML.

Exemple XML AJAX

L'exemple suivant montre comment une page Web lit les informations d'un fichier XML via AJAX :

QQ图片20161010102948.png

Explication des exemples - Page HTML

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

<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>

showCD() effectuera les étapes suivantes :

·                                                                                                                                                                                            ‐                               >

·                                                                                                                                                                                                                                                                                ne fait pas Contenu)

Fichier PHP

La page du serveur appelée ci-dessus via JavaScript est un fichier PHP nommé "getcd.php".

Le script PHP charge le document XML, "cd_catalog.xml", exécute la requête sur le fichier XML et renvoie les résultats en 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 CD est envoyée depuis JavaScript à la page PHP, Occurrence :

1. PHP crée un objet XML DOM

2. Recherchez les noms dans tous les éléments <artist> Affiche les informations sur l'album et renvoie l'espace réservé "txtHint"

Formation continue
||
<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>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel