php处理ajax xml,PHP 实例 AJAX 与 XML

PHP 实例 - AJAX 与 XML

在 PHP 中,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" 事件触发:

function showCD(str)

{

if (str=="")

{

document.getElementById("txtHint").innerHTML="";

return;

}

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for 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();

}

Select a CD:

Select a CD:

Bob Dylan

Bonnie Tyler

Dolly Parton

CD info will be listed here...

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('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;$ilength;$i++)

{

//Process only element nodes

if ($cd->item($i)->nodeType==1)

{

echo("" . $cd->item($i)->nodeName . ": ");

echo($cd->item($i)->childNodes->item(0)->nodeValue);

echo("
");

}

}

?>

当 CD 查询从 JavaScript 发送到 PHP 页面时,将发生: PHP 创建 XML DOM 对象

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

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

相关教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值