PHP and AJAX responseXML 实例教程
AJAX技术可以用来恢复的数据库信息为XML 。
AJAX的数据库为XML的例子
在AJAX以下例子,我们将演示如何网页上可以卖到信息从一个MySQL数据库,它转换为一个XML文档,并用它来显示信息在几个不同的地方。
这个例子我似乎很像“ PHP的AJAX技术数据库”例如,在最后一章,但是有一个很大的不同:在这个例子中我们得到的数据从PHP的XML网页使用responseXML功能。
接收的响应作为XML文件使我们能够更新这个网页好几个地方,而不是只接受一个PHP输出和显示它。
在这个例子中,我们将更新一些内容与我们所收到的信息从数据库中。
id | FirstName | LastName | Age | Hometown | Job |
---|---|---|---|---|---|
1 | Peter | Griffin | 41 | Quahog | Brewery |
2 | Lois | Griffin | 40 | Newport | Piano Teacher |
3 | Joseph | Swanson | 39 | Quahog | Police Officer |
4 | Glenn | Quagmire | 41 | Quahog | Pilot |
<script src="responsexml.js"></script>
<h2> <span id="firstname"></span> <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>
<div id="result_box" dir="ltr"> <p>例如解释-的H TML表单 <br>在HTML表单是一个下拉框中所谓的“用户”的名字和“身份证”从数据库,作为选择的价值。 <br>下面的形式有几种不同的<span>要素是用来作为占位符的不同的价值观,我们将检索。 <br>当用户选择的数据,一个函数称为“ showUser ( ) ”执行。执行的职能是引发的“ onchange ”事件。 <br>换句话说:每一次变化的用户的价值在下拉框中,功能showUser ( )被调用和产出的结果在指定的<span>内容。 <br><br><br> 转载请注明来自http://www.111cn.net/wy/yw.html<br><br><br>的JavaScript <br>这是JavaScript代码存储在文件中“ responsexml.js ” :</span></span></p> <pre class="brush:php;toolbar:false">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 }
<div id="result_box" dir="ltr"> <p>例如解释 <br>该showUser ( )和GetXmlHttpObject职能是一样的PHP的AJAX章数据库,您可以去那里解释这些。 <br><br>该stateChanged ( )函数 <br><br>如果一个项目在下拉框中选择执行的功能如下: <br><br>界定了“语法”变量作为一个XML文件使用responseXML功能 <br>检索数据从XML文件和使他们在正确的<span>内容 <br><br> <br><br>PHP页面 <br>该服务器的页面要求的JavaScript ,是一个简单的PHP文件名为“ responsexml.php ” 。 <br><br>该网页是PHP写成的,并使用一个MySQL数据库。 <br><br>该代码运行一个SQL查询的数据库,并返回结果作为一个XML文件:</span></p> <pre class="brush:php;toolbar:false"><?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.111cn.net/wy/yw.html