一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

PHP and AJAX XML教程

时间:2008-10-31 编辑:简简单单 来源:一聚教程网

PHP and AJAX XML教程

在HTML表单
上面的例子中包含一个简单的HTML表格,并链接到一个JavaScript :





Select a CD:

CD info will be listed here.


例如解释
正如你所看到的,这只是一个简单的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 :


$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("
"); } } ?>

例如解释
当查询是发送的JavaScript到PHP页面以下情况:

PHP的创建一个XML DOM对象的“ cd_catalog.xml ”文件
所有的“艺术家”的内容( nodetypes = 1 )的环通过找到一个名称相匹配的一个发出的JavaScript 。
裁谈会含有正确的艺术家发现
该专辑的信息输出和发送到“ txtHint ”占位

转载请注明来自http://www.111com.net/wy/yw.html

热门栏目