首页 > php代码 > PHP and AJAX responseXML 实例教程

PHP and AJAX responseXML 实例教程

PHP and AJAX responseXML 实例教程

AJAX技术可以用来恢复的数据库信息为XML 。




AJAX的数据库为XML的例子
在AJAX以下例子,我们将演示如何网页上可以卖到信息从一个MySQL数据库,它转换为一个XML文档,并用它来显示信息在几个不同的地方。

这个例子我似乎很像“ PHP的AJAX技术数据库”例如,在最后一章,但是有一个很大的不同:在这个例子中我们得到的数据从PHP的XML网页使用responseXML功能。

接收的响应作为XML文件使我们能够更新这个网页好几个地方,而不是只接受一个PHP输出和显示它。

在这个例子中,我们将更新一些<span>内容与我们所收到的信息从数据库中。


idFirstNameLastNameAgeHometownJob
1PeterGriffin41QuahogBrewery
2LoisGriffin40NewportPiano Teacher
3JosephSwanson39QuahogPolice Officer
4GlennQuagmire41QuahogPilot
<html>
<head>
<script src="responsexml.js"></script>
</head>
<body>
<form> 
Select a User:
<select name="users" onchange="showUser(this.value)">
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>
<h2><span id="firstname"></span>
&nbsp;<span id="lastname"></span></h2>
<span id="job"></span>
<div style="text-align: right">
<span id="age_text"></span>
<span id="age"></span>
<span id="hometown_text"></span>
<span id="hometown"></span>
</div>
</body>
</html>


例如解释-的HTML表单 

在HTML表单是一个下拉框中所谓的“用户”的名字和“身份证”从数据库,作为选择的价值。 

下面的形式有几种不同的<span>要素是用来作为占位符的不同的价值观,我们将检索。 

当用户选择的数据,一个函数称为“ showUser ( ) ”执行。执行的职能是引发的“ onchange ”事件。 

换句话说:每一次变化的用户的价值在下拉框中,功能showUser ( )被调用和产出的结果在指定的<span>内容。 


的JavaScript 

这是JavaScript代码存储在文件中“ responsexml.js ” :

var xmlHttp
function showUser(str) {
    xmlHttp = GetXmlHttpObject()
    if (xmlHttp == null) {
        alert("Browser does not support HTTP Request")
        return
    }
    var url = "responsexml.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") {
        xmlDoc = xmlHttp.responseXML;
        document.getElementById("firstname").innerHTML =
            xmlDoc.getElementsByTagName("firstname")[0].childNodes[0].nodeValue;
        document.getElementById("lastname").innerHTML =
            xmlDoc.getElementsByTagName("lastname")[0].childNodes[0].nodeValue;
        document.getElementById("job").innerHTML =
            xmlDoc.getElementsByTagName("job")[0].childNodes[0].nodeValue;
        document.getElementById("age_text").innerHTML = "Age: ";
        document.getElementById("age").innerHTML =
            xmlDoc.getElementsByTagName("age")[0].childNodes[0].nodeValue;
        document.getElementById("hometown_text").innerHTML = "<br/>From: ";
        document.getElementById("hometown").innerHTML =
            xmlDoc.getElementsByTagName("hometown")[0].childNodes[0].nodeValue;
    }
}
function GetXmlHttpObject() {
    var objXMLHttp = null
        if (window.XMLHttpRequest) {
            objXMLHttp = new XMLHttpRequest()
        } else if (window.ActiveXObject) {
            objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
        return objXMLHttp
}

例如解释 

该showUser ( )和GetXmlHttpObject职能是一样的PHP的AJAX章数据库,您可以去那里解释这些。 


该stateChanged ( )函数 


如果一个项目在下拉框中选择执行的功能如下: 


界定了“语法”变量作为一个XML文件使用responseXML功能 

检索数据从XML文件和使他们在正确的<span>内容 


PHP页面 

该服务器的页面要求的JavaScript ,是一个简单的PHP文件名为“ responsexml.php ” 。 


该网页是PHP写成的,并使用一个MySQL数据库。 


该代码运行一个SQL查询的数据库,并返回结果作为一个XML文件:

<?php
header('Content-Type: text/xml');
header("Cache-Control: no-cache, must-revalidate");
//A date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
$q=$_GET["q"];
$con = mysql_connect('localhost', 'peter', 'abc123');
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("ajax_demo", $con);
$sql="SELECT * FROM user WHERE id = ".$q."";
$result = mysql_query($sql);
echo '<?xml version="1.0" encoding="ISO-8859-1"?>
<person>';
while($row = mysql_fetch_array($result))
{
    echo "<firstname>" . $row['FirstName'] . "</firstname>";
    echo "<lastname>" . $row['LastName'] . "</lastname>";
    echo "<age>" . $row['Age'] . "</age>";
    echo "<hometown>" . $row['Hometown'] . "</hometown>";
    echo "<job>" . $row['Job'] . "</job>";
}
echo "</person>";
mysql_close($con);


本文地址:http://www.phprm.com/code/3b6e284725fba541f05f587769a8eb6b.html

转载随意,但请附上文章地址:-)

标签:none

发表留言