AJAX+PHP+XML简单实例代码



AJAX+PHP+XML简单实例代码。php中ajax的应用。

1.页面ajax代码
<script language=”Javascript”>
var xmlHttp;
var newUser;
{literal}

function createXMLHttpRequest() {
var xmlreq = false;
if (window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlreq = new ActiveXObject(“Msxml2.XMLHTTP”);
} catch (e1) {
try {
xmlreq = new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (e2) {}
}
}
return xmlreq;
}
function myQueryUsers(){
//得到XMLHttpRequest对象
xmlHttp=createXMLHttpRequest();
var queryStr = document.forms[0].userCode.value;
//配置请求路径及参数
var queryString = “/service/Ajax.php?usercode=”+queryStr;
//alert(queryString);
xmlHttp.open(“GET”,queryString,true);

xmlHttp.onreadystatechange = handlestatechange;
xmlHttp.send(null);
}

function handlestatechange(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
//alert(“return。。。”);
//alert(xmlHttp.responseText);

//正常返回,处理返回结果
parseResults(xmlHttp.responseXML);
}
}
}
function parseResults(obj){
var sel = document.all.BugUserList;
newUser = obj.getElementsByTagName(“object”);
//删除列表框中原有数据
for(var a=sel.options.length;a>0;a–)
{
sel.options.remove(sel.options[a]);
}
//将ajax请求的新数据写入列表中
for(var j=0;j<newUser.length;j++)
{
var opt=new Option();

opt.value = newUser[j].lastChild.firstChild.nodeValue;
opt.text = newUser[j].firstChild.firstChild.nodeValue;
sel.options.add(opt);
}

}
{/literal}
</script>


2.服务端代码
$usercode = $_REQUEST["usercode"];
$TPL->assign(“UsercCode”,$usercode);

/* 查询用户数据 */
$BugUserList = bugPinyinUserList(“”,$usercode, true);
unset($BugUserList[""]); // Remove the empty user.
unset($BugUserList["Closed"]); // Remove the Closed user.

header(‘Content-type: text/xml’);
//将查询出的数据封装成xml
$XmlString = “<?xml version=’1.0′ encoding=’GBK’?>”;
$XmlString .= “<root>”;
if($BugUserList){
foreach($BugUserList as $BugUser){
$XmlString .= “<object>”;
$XmlString .= “<name>” .$BugUser["RealName"].”</name>”;
$XmlString .= “<value>” .$BugUser["UserName"].”</value>”;
$XmlString .= “</object>”;
}
}
$XmlString .= “</root>”;
echo $XmlString;
exit;

3.查询数据代码
/**
* Get the bug user list.
*
* @author Juqi Yang <yangjuqi@126.com>
* @return array $BugUserList bug user list.
*/
function bugPinyinUserList($Where = “”,$UserCode = “”,$PreAppend = false)
{
global $BugConfig;

$DBName = !empty($BugConfig["UserDB"]) ? “MyUserDB” : “MyDB”;
global $$DBName;

/* 查询用户表 */
$SQL = ” SELECT UserName,RealName FROM BugUser WHERE UserCode like ‘$UserCode%’ ORDER BY UserName”;
$ResultID = $$DBName->query($SQL);
if($ResultID)
{
while($BugUserInfo = $ResultID->fetchRow())
{
$BugUserInfo["RealName"] = strtoupper(substr($BugUserInfo["UserName"],0,1)) . “: ” . $BugUserInfo["RealName"];
$BugUserList[$BugUserInfo["UserName"]]=$BugUserInfo;
}

return $BugUserList;
}
else
{
die($$DBName->errorMsg());
}
}