首页 >后端开发 >php教程 >关于PHP 实例 - AJAX 与 XML的交互

关于PHP 实例 - AJAX 与 XML的交互

jacklove
jacklove原创
2018-05-07 14:59:591391浏览

AJAX 可用来与 XML 文件进行交互式通信,本篇将会详细的讲解AJAX 与 XML之间的交互。

AJAX XML 实例

下面的实例将演示网页如何通过 AJAX 从 XML 文件读取信息:

实例

 Select a CD: Bob Dylan Bee Gees Cat Stevens 

CD info will be listed here...

实例解释 - HTML 页面

当用户在上面的下拉列表中选择某张 CD 时,会执行名为 "showCD()" 的函数。该函数由 "onchange" 事件触发:

<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() 函数会执行以下步骤:

检查是否有 CD 被选择

创建 XMLHttpRequest 对象

创建在服务器响应就绪时执行的函数

向服务器上的文件发送请求

请注意添加到 URL 末端的参数(q)(包含下拉列表的内容)

PHP 文件

上面这段通过 JavaScript 调用的服务器页面是名为 "getcd.php" 的 PHP 文件。

PHP 脚本加载 XML 文档,"cd_catalog.xml",运行针对 XML 文件的查询,并以 HTML 返回结果:

<?php
$q=$_GET["q"];$xmlDoc = new DOMDocument();$xmlDoc->load("cd_catalog.xml");$x=$xmlDoc->getElementsByTagName(&#39;ARTIST&#39;);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>");    }}?>

当 CD 查询从 JavaScript 发送到 PHP 页面时,将发生:

PHP 创建 XML DOM 对象

查找所有 cbb6a5431263fa60a8770e5fc7758c8f 元素中与 JavaScript 所传数据相匹配的名字

输出 album 的信息,并发送回 "txtHint" 占位符

本篇详细的讲解了 AJAX 与 XML的交互,更多的学习资料清关注php中文网即可观看。

相关推荐:

关于PHP - AJAX 与 MySQL之间的交互

关于PHP - AJAX 与 PHP之间的联系

关于PHP Simple XML的相关知识

以上是关于PHP 实例 - AJAX 与 XML的交互的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn