PHP AJAX e istanza XML
AJAX può essere utilizzato per comunicare in modo interattivo con il file XML.
AJAX esempio XML
Gli esempi che seguono dimostreranno come una pagina web tramite la tecnologia AJAX lettura di informazioni da un file XML:
Esempi
CD info will be listed here...
pagina HTML - Esempi spiegano
Quando un utente nell'elenco a discesa sopra per selezionare un doppio CD, esegue nominato ") showCD (" la funzione. Questa funzione dall'evento "onchange" viene attivato:
<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>
Funzione showCD () esegue le seguenti operazioni:
- Controllare se è selezionato il CD
- Creare l'oggetto XMLHttpRequest
- Creare funzione quando il server è pronto per eseguire la risposta
- File sul server per inviare le richieste
- Si prega di notare aggiunto alla fine del parametro URL (q) (contiene il contenuto della lista a discesa)
PHP file
I server di cui sopra attraverso JavaScript chiamando questa pagina è chiamato file PHP "getcd.php".
script PHP per caricare un documento XML, " cd_catalog.xml ", per eseguire query su file XML e restituisce il risultato come 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>"); } } ?>
Quando la query CD viene inviato da JavaScript a pagina PHP si verificherà:
- PHP creare oggetto DOM XML
- Trova tutte le <artista> elemento con JavaScript predicato nomi corrispondenti dati
- album in uscita informazioni, e restituisce segnaposto "txtHint"