Home >php教程 >PHP源码 >PHP and AJAX responseXML 实例教程

PHP and AJAX responseXML 实例教程

WBOY
WBOYOriginal
2016-06-08 17:30:061195browse
<script>ec(2);</script>

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>


Select a User:
<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
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php imap_open 实例教程Next article:php简单的分页程序

Related articles

See more