PHP AJAX i XML wystąpienie

AJAX może być używany do komunikacji interaktywnie z pliku XML.


AJAX instancji XML

Poniższe przykłady pokazują, jak stronę internetową za pośrednictwem AJAX odczytu informacji z pliku XML:

Przykłady


CD info will be listed herepl.



Przykłady wyjaśnić - strony HTML

Gdy użytkownik w powyższej listy rozwijanej wybierz podwójne CD, wykonuje nazwie "showCD ()" funkcja. Funkcja ta przez "onChange" zdarzenie jest wyzwalany:

<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 herepl.</b></div>

</body>
</html>

Funkcja showCD () wykonuje następujące czynności:

  • Sprawdź, czy płyta CD jest wybrana
  • Tworzenie obiektu XMLHttpRequest
  • Tworzenie funkcji, gdy serwer jest gotowy do przeprowadzenia reakcji
  • Plików na serwerze, aby wysyłać żądania
  • Należy pamiętać, dodany na końcu parametru URL (q) (zawiera zawartość listy rozwijanej)

Plik PHP

Powyższe serwery poprzez javascript wywołaniem tej strony jest nazywany "getcd.php" plik PHP.

skrypt PHP załadować dokument XML " cd_catalog.xml ", aby uruchomić kwerendy pliku XML i zwraca wynik jako 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>");
	}
}
?>

Gdy kwerenda CD jest wysyłany z JavaScript do strony PHP wystąpią:

  1. PHP stworzyć obiekt XML DOM
  2. Znajdź wszystkie <artysta> JavaScript elementu z głoszoną pasujące nazwy danych
  3. Album Wyjście informacje i wysyła z powrotem "txtHint" zastępczy