PHP+AJAX教程(4)-PHP和AJAX XML实例.docx_第1页
PHP+AJAX教程(4)-PHP和AJAX XML实例.docx_第2页
PHP+AJAX教程(4)-PHP和AJAX XML实例.docx_第3页
PHP+AJAX教程(4)-PHP和AJAX XML实例.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP+AJAX教程(4):PHP和AJAX XML实例AJAX 可与 XML 文件进行交互式通信。AJAX XML 实例在下面的 AJAX 实例中,我们将演示网页如何使用 AJAX 技术从 XML 文件中读取信息。在列表中选择一张 CD (测试说明:该实例功能未实现)在此列出 CD 信息。本例包括三张页面:一个简单 HTML 表单一个 XML 文件一个 JavaScript 文件一张 PHP 页面HTML 表单上面的例子包含了一张简单的 HTML 表单,以及指向 JavaScript 的链接:<html><head><script src=selectcd.js></script></head><body><form> Select a CD:<select name=cds onchange=showCD(this.value)><option value=Bob Dylan>Bob Dylan</option><option value=Bee Gees>Bee Gees</option><option value=Cat Stevens>Cat Stevens</option></select></form><p><div id=txtHint><b>CD info will be listed here.</b></div></p></body></html>例子解释:正如您看到的,它仅仅是一张简单的 HTML 表单,其中带有名为 cds 的下拉列表。表单下面的段落包含了一个名为 txtHint 的 div。这个 div 用作从 web 服务器检索到的数据的占位符。当用户选择数据时,会执行名为 showCD 的函数。这个函数的执行是由 onchange 事件触发的。换句话说,每当用户改变了下拉列表中的值,就会调用 showCD 函数。XML 文件XML 文件是 cd_catalog.xml。okooo澳客网该文件中包含了有关 CD 收藏的数据。JavaScript这是存储在 selectcd.js 文件中的 JavaScript 代码:var xmlHttpfunction showCD(str) xmlHttp=GetXmlHttpObject()if (xmlHttp=null)alert (Browser does not support HTTP Request)return var url=getcd.phpurl=url+?q=+strurl=url+&sid=+Math.random()xmlHttp.onreadystatechange=stateChanged xmlHttp.open(GET,url,true)xmlHttp.send(null)function stateChanged() if (xmlHttp.readyState=4 | xmlHttp.readyState=complete) document.getElementById(txtHint).innerHTML=xmlHttp.responseText function GetXmlHttpObject()var xmlHttp=null;try/ Firefox, Opera 8.0+, SafarixmlHttp=new XMLHttpRequest();catch (e)/ Internet Explorertry xmlHttp=new ActiveXObject(Msxml2.XMLHTTP); catch (e) xmlHttp=new ActiveXObject(Microsoft.XMLHTTP); return xmlHttp;例子解释:stateChanged() 和 GetXmlHttpObject 函数与上一节中的相同,您可以参阅上一页中的相馆解释。showCD() 函数假如选择了下拉列表中的某个项目,则函数执行:调用 GetXmlHttpObject 函数来创建 XMLHTTP 对象 定义发送到服务器的 URL(文件名) 向 URL 添加带有下拉列表内容的参数 (q) 添加一个随机数,以防服务器使用缓存的文件 当触发事件时调用 stateChanged 通过给定的 URL 打开 XMLHTTP 对象 向服务器发送 HTTP 请求PHP 页面这个被 JavaScript 调用的服务器页面,是一个名为 getcd.php 的简单 PHP 文件。这张页面是用 PHP 编写的,使用 XML DOM 来加载 XML 文档 cd_catalog.xml。代码运行针对 XML 文件的查询,并以 HTML 返回结果:<?php$q=$_GETq;$xmlDoc = new DOMDocument();$xmlDoc->load(cd_catalog.xml);$x=$xmlDoc->getElementsByTagName(ARTIST);for ($i=0; $i<=$x->length-1; $i+)/Process only element nodesif ($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 nodesif ($cd->item($i)->nodeType=1) echo($cd->item($i)->nodeName); echo(: ); echo($cd->item($i)->childNodes->item(0)->nodeValue); echo(<br />); ?>例子解释当请求从 JavaScript 发送到 PHP 页面时,发生:PHP 创建 cd_catalog.xml 文件的 XML DOM 对象 循环所有 artist 元素 (nodetypes = 1),查找与 JavaScript 所传数据向匹配的名字 找到 CD 包含的正确 artist 输出 album 的信息,并发送到 txtHint 占位符cd_catalog.xml<?xml version=1.0 encoding=ISO-8859-1 ?> - <!- Edited by XMLSpy® -> - <CATALOG>- <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD>- <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD>- <CD> <TITLE>Greatest Hits</TITLE> <ARTIST>Dolly Parton</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>RCA</COMPANY> <PRICE>9.90</PRICE> <YEAR>1982</YEAR> </CD>- <CD> <TITLE>Still got the blues</TITLE> <ARTIST>Gary Moore</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Virgin records</COMPANY> <PRICE>10.20</PRICE> <YEAR>1990</YEAR> </CD>- <CD> <TITLE>Eros</TITLE> <ARTIST>Eros Ramazzotti</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>BMG</COMPANY> <PRICE>9.90</PRICE> <YEAR>1997</YEAR> </CD>- <CD> <TITLE>One night only</TITLE> <ARTIST>Bee Gees</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Polydor</COMPANY> <PRICE>10.90</PRICE> <YEAR>1998</YEAR> </CD>- <CD> <TITLE>Sylvias Mother</TITLE> <ARTIST>Dr.Hook</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS</COMPANY> <PRICE>8.10</PRICE> <YEAR>1973</YEAR> </CD>- <CD> <TITLE>Maggie May</TITLE> <ARTIST>Rod Stewart</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Pickwick</COMPANY> <PRICE>8.50</PRICE> <YEAR>1990</YEAR> </CD>- <CD> <TITLE>Romanza</TITLE> <ARTIST>Andrea Bocelli</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>Polydor</COMPANY> <PRICE>10.80</PRICE> <YEAR>1996</YEAR> </CD>- <CD> <TITLE>When a man loves a woman</TITLE> <ARTIST>Percy Sledge</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Atlantic</COMPANY> <PRICE>8.70</PRICE> <YEAR>1987</YEAR> </CD>- <CD> <TITLE>Black angel</TITLE> <ARTIST>Savage Rose</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>Mega</COMPANY> <PRICE>10.90</PRICE> <YEAR>1995</YEAR> </CD>- <CD> <TITLE>1999 Grammy Nominees</TITLE> <ARTIST>Many</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Grammy</COMPANY> <PRICE>10.20</PRICE> <YEAR>1999</YEAR> </CD>- <CD> <TITLE>For the good times</TITLE> <ARTIST>Kenny Rogers</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Mucik Master</COMPANY> <PRICE>8.70</PRICE> <YEAR>1995</YEAR> </CD>- <CD> <TITLE>Big Willie style</TITLE> <ARTIST>Will Smith</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>9.90</PRICE> <YEAR>1997</YEAR> </CD>- <CD> <TITLE>Tupelo Honey</TITLE> <ARTIST>Van Morrison</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Polydor</COMPANY> <PRICE>8.20</PRICE> <YEAR>1971</YEAR> </CD>- <CD> <TITLE>The very best of</TITLE> <ARTIST>Cat Stevens</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Island</COMPANY> <PRICE>8.90</PRICE> <YEAR>1990</YEAR> </CD>- <CD> <TITLE>Stop</TITLE> <ARTIST>Sam Brown</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>A and M</COMPANY> <PRICE>8.90</PRICE> <YEAR>1988</YEAR> </CD>- <CD> <TITLE>Bridge of Spies</TITLE> <ARTIST>TPau</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Siren</COMPANY> <PRICE>7.90</PRICE> <YEAR>1987</YEAR> </CD>- <CD> <TITLE>Private Dancer</TITLE> <ARTIST>Tina Turner</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Capitol</COMPANY> <PRICE>8.90</PRICE> <YEAR>1983</YEAR> </CD>- <CD> <TITLE>Midt om natten</TITLE> <ARTIST>Kim Larsen</ARTIST> <COUNTRY>EU</COUNTRY> <COMPANY>Medley</COMPANY> <PRICE>7.80</PRICE> <YEAR>1983</YEAR> </CD>- <CD> <TITLE>Pavarotti Gala Concert</TITLE> <ARTIST>Luciano Pavarotti</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>DECCA</COMPANY> <PRICE>9.90</PRICE> <YEAR>1991</YEAR> </CD>- <CD> <TITLE>The dock of the bay</TITLE> <ARTIST>Otis Redding</ARTIST&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论