php ajax xml,PHP - AJAX 与 XML

AJAX 可用来与 XML 文件进行交互式通信。

AJAX XML 实例

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

5a4b7f303e558c5f9673bc50e0d307eb.png

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

PHP中文网

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();

}

Select a CD:

Select a CD:

Bob Dylan

Bonnie Tyler

Dolly Parton

CD info will be listed here...

showCD() 函数会执行以下步骤:

·   检查是否有 CD 被选择

·   创建 XMLHttpRequest 对象

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

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

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

xml文件

Empire Burlesque

Bob Dylan

USA

Columbia

10.90

1985

Maggie May

Rod Stewart

UK

Pickwick

8.50

1990

Black angel

Savage Rose

EU

Mega

10.90

1995

The dock of the bay

Otis Redding

USA

Atlantic

7.90

1987

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++)

{

// 处理元素节点

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++)

{

// 处理元素节点

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

{

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

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

echo("
");

}

}

?>

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

1.    PHP 创建 XML DOM 对象

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

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

程序成果展示:

16506c57d9096d4c00c0632cdffaafa2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值