PHP+AJAX教程(4):PHP和AJAX XML实例--Php-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:211回复:0

  PHP+AJAX教程(4):PHP和AJAX XML实例-

楼主#
更多 发布于:2016-05-30 22:19

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

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

AJAX XML 实例

鄙人面的 AJAX 实例中,我们将演示页面如何运用 AJAX 技术从 XML

文件中读取信息。

在列表中挑选一张 CD (测验阐明:该实例功用未完成)

Select a CD:

Bob Dylan

Bee Gees

Cat Stevens

在此列出 CD 信息。

本例包括三张页面:

一个简略 HTML 表单

一个 XML 文件

一个 JavaScript 文件

一张 PHP 页面

HTML 表单

上面的比如包括了一张简略的 HTML 表单,以及指向 JavaScript 的连接:

Select a CD:

Bob

Dylan

Bee

Gees

Cat

Stevens

 

CD info will be listed here.

比如解说:

正如您看到的,它仅仅是一张简略的 HTML 表单,其间带有名为 "cds" 的下拉列表。

表单下面的阶段包括了一个名为 "txtHint" 的 div。这个 div 用作从 web

服务器检索到的数据的占位符。

当用户挑选数据时,会履行名为 "showCD" 的函数。这个函数的履行是由 "onchange"

事情触发的。

换句话说,每逢用户改变了下拉列表中的值,就会调用 showCD 函数。

XML 文件

XML 文件是 "cd_catalog.xml"。该文件中包括了有关 CD 保藏的数据。

JavaScript

这是存储在 "selectcd.js" 文件中的 JavaScript 代码:

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 目标

定义发送到服务器的 URL(文件名)

向 URL 增加带有下拉列表内容的参数 (q)

增加一个随机数,以防服务器运用缓存的文件

当触发事情时调用 stateChanged

经过给定的 URL 翻开 XMLHTTP 目标

向服务器发送 HTTP 恳求

PHP 页面

这个被 JavaScript 调用的服务器页面,是一个名为 "getcd.php" 的简略 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("

");

}

}

?>

比如解说

当恳求从 JavaScript 发送到 PHP 页面时,发作:

PHP 创立 "cd_catalog.xml" 文件的 XML DOM 目标

循环所有 "artist" 元素 (nodetypes = 1),查找与 JavaScript

所传数据向匹配的姓名

找到 CD 包括的准确 artist

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

cd_catalog.xml

-

-

-

Bob Dylan

USA

Columbia

10.90

1985

-

Bonnie Tyler

UK

CBS Records

9.90

1988

-

Dolly Parton

USA

RCA

9.90

1982

-

Gary Moore

UK

Virgin records

10.20

1990

-

Eros Ramazzotti

EU

BMG

9.90

1997

-

Bee Gees

UK

Polydor

10.90

1998

-

Dr.Hook

UK

CBS

8.10

1973

-

Rod Stewart

UK

Pickwick

8.50

1990

-

Andrea Bocelli

EU

Polydor

10.80

1996

-

Percy Sledge

USA

Atlantic

8.70

1987

-

Savage Rose

EU

Mega

10.90

1995

-

Many

USA

Grammy

10.20

1999

-

Kenny Rogers

UK

Mucik Master

8.70

1995

-

Will Smith

USA

Columbia

9.90

1997

-

Van Morrison

UK

Polydor

8.20

1971

-

Cat Stevens

UK

Island

8.90

1990

-

Sam Brown

UK

A and M

8.90

1988

-

T'Pau

UK

Siren

7.90

1987

-

Tina Turner

UK

Capitol

8.90

1983

-

Kim Larsen

EU

Medley

7.80

1983

-

Luciano Pavarotti

UK

DECCA

9.90

1991

-

Otis Redding

USA

Atlantic

7.90

1987

-

Simply Red

EU

Elektra

7.20

1985

-

The Communards

UK

London

7.80

1987

-

Joe Cocker

USA

EMI

8.20

1987

优质IT资源分享社区为你提供此文。

本站有大量优质php教程视频,资料等资源,包含php基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看

php教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客