PHP and AJAX XML教程
PHP and AJAX XML教程
在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表单以一个简单的下拉框中所谓的“光碟” 。
该段以下的形式包含一个专区所谓的“ txtHint ” 。该专区是用作预留位置信息检索的网络服务器。
当用户选择的数据,一个函数称为“ showCD ”执行。执行的职能是引发的“ onchange ”事件。
换句话说:每一次变化的用户的价值在下拉框中,功能showCD被称为。
XML档案
XML文件是“ cd_catalog.xml ” 。本文件包含的CD收藏。
的JavaScript
这是JavaScript代码存储在文件中“ selectcd.js ” :var xmlHttp function showCD(str) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="getcd.php" url=url+"?q="+str url=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+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }例如解释
该stateChanged ( )和GetXmlHttpObject职能是一样的最后一章,您可以到前一页解释这些
该showCD ( )函数
如果一个项目在下拉框中选择执行的功能如下:
吁请GetXmlHttpObject函数创建一个XMLHTTP物件
界定了网址(档)传送给服务器
添加一个参数( Q )的网址的内容,输入栏位
添加一个随机数字,以防止服务器使用快取档案
呼叫stateChanged改变时,就会触发
开幕XMLHTTP物件与特定网址。
发送一个HTTP请求到服务器
PHP页面
服务器分页所谓的脚本是一个简单的PHP文件名为“ getcd.php ” 。
该网页是PHP写成的使用XML的DOM加载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($cd->item($i)->nodeName); echo(": "); echo($cd->item($i)->childNodes->item(0)->nodeValue); echo("<br />"); } } ?>例如解释
当查询是发送的JavaScript到PHP页面以下情况:
PHP的创建一个XML DOM对象的“ cd_catalog.xml ”文件
所有的“艺术家”的内容( nodetypes = 1 )的环通过找到一个名称相匹配的一个发出的JavaScript 。
裁谈会含有正确的艺术家发现
该专辑的信息输出和发送到“ txtHint ”占位转载请注明来自http://www.zhaoxi.org/wy/yw.html
补充:网页制作,js教程