PHP उदाहरण - AJAX और XML
AJAX का उपयोग XML फ़ाइल के साथ संवादात्मक संचार के लिए किया जा सकता है।
अजाक्स एक्सएमएल उदाहरण
निम्न उदाहरण प्रदर्शित करेगा कि कैसे एक वेब पेज AJAX के साथ XML फ़ाइल से जानकारी प्राप्त कर सकता है:
उदाहरण
CD info will be listed here...
उदाहरण समझाया - HTML पृष्ठ
जब कोई उपयोगकर्ता उपरोक्त ड्रॉपडाउन सूची में एक सीडी का चयन करता है, तो "शोसीडी ()" नामक एक फ़ंक्शन निष्पादित होता है। फ़ंक्शन "ऑनचेंज" ईवेंट द्वारा ट्रिगर किया गया है:
<html>
<head>
<script>
function showCD(str)
{
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("txtHint").innerHTML=this.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="Bee Gees">Bee Gees</option>
<option value="Cat Stevens">Cat Stevens</option>
</select>
</form>
<div id="txtHint"><b>CD info will be listed here...</b></div>
</body>
</html>
शोसीडी () फ़ंक्शन निम्न कार्य करता है:
- जांचें कि क्या कोई सीडी चुनी गई है
- XMLHttpRequest ऑब्जेक्ट बनाएं
- सर्वर प्रतिक्रिया तैयार होने पर निष्पादित होने के लिए फ़ंक्शन बनाएं
- सर्वर पर एक फ़ाइल के लिए अनुरोध भेजें
- ध्यान दें कि URL में एक पैरामीटर (q) जोड़ा जाता है (ड्रॉपडाउन सूची की सामग्री के साथ)
पीएचपी फ़ाइल
सर्वर पर उपरोक्त जावास्क्रिप्ट द्वारा बुलाया गया पृष्ठ एक PHP फ़ाइल है जिसे "getcd.php" कहा जाता है।
PHP स्क्रिप्ट एक XML दस्तावेज़ " cd_catalog.xml " लोड करती है, XML फ़ाइल के विरुद्ध एक क्वेरी चलाती है, और परिणाम 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++)
{
//Process only element nodes
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++)
{
//Process only element nodes
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
echo($cd->item($i)->childNodes->item(0)->nodeValue);
echo("<br>");
}
}
?>
जब सीडी क्वेरी जावास्क्रिप्ट से PHP पेज पर भेजी जाती है, तो निम्न होता है:
- PHP एक XML DOM ऑब्जेक्ट बनाता है
- जावास्क्रिप्ट से भेजे गए नाम से मेल खाने वाले सभी <कलाकार> तत्व खोजें
- एल्बम की जानकारी आउटपुट करें ("txtHint" प्लेसहोल्डर को भेजें)