php中结合Ajax的问题
删除页:del.php
- HTML code
<html> <head> <title>Information</title> <script type="text/javascript"> var xmlHttp ; function createXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP") ; }else if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest() ; } } function show(){ createXMLHttpRequest() ; var url="delsend.php" ; xmlHttp.onreadystatechange=callback ; xmlHttp.open("GET" , url , true) ; xmlHttp.send(null) ; } function callback(){ if(xmlHttp.readyState==4){ if(xmlHttp.status==200){ chk() ; } } } function chk(){ var xmlDoc=xmlHttp.responseXML ; var yan=xmlDoc.getElementsByTagName("content") ; var ta="<table border='1' align='center'><th>用户编号</th><th>用户</th><th>聊天内容</th><th>聊天时间</th><th>操作</th>" ; for(var i=0 ; i<yan.length ; i++){ var y=yan[i] ; ta+="<tr><td>"+y.childNodes[0].firstChild.data+"</td>" ; ta+="<td>"+y.childNodes[1].firstChild.data+"</td>" ; ta+="<td>"+y.childNodes[2].firstChild.data+"</td>" ; ta+="<td>"+y.childNodes[3].firstChild.data+"</td>" ; ta+="<td><span id="+y.childNodes[4].firstChild.data+" onclick='start(this)'>删除</span></td></tr>" ; } ta +="</table>" ; document.getElementById("del").innerHTML=ta ; //alert(yan.length) ; } function start(ele){ var id=ele.id ; createXMLHttpRequest() ; var urldel="startsend.php?key="+escape(id) ; xmlHttp.onreadystatechange=back ; xmlHttp.open("GET" , urldel , true) ; xmlHttp.send(null) ; } function back(){ if(xmlHttp.readyState==4){ if(xmlHttp.status==200){ var str=xmlHttp.responseText ; if(str=="1"){ alert("该项已被删除,1秒之后显示新的信息") ; setTimeout("show()" , 1000) ; } } } } </script> </head> <body onLoad="show()"> <?php error_reporting(E_ALL & ~E_NOTICE); ?> <div align="center"> <h2>删除信息</h2> <div id="del"></div> </div> </body></html>[/code]delsend.php
- PHP code
<?phpheader("Content-Type:text/xml") ;header("cache-control:no-cache , must-revalidate") ;error_reporting(E_ALL & ~E_NOTICE);$xml="<?xml version='1.0' encoding='gb2312'?>" ;$xml=$xml."<contents>" ;include_once("conn.php") ;$result=mysql_query("select * from chatcontent") ;while($rs=mysql_fetch_object($result)){ $content.="<content><userid>".$rs->user_id."</userid><name>".$rs->name."</name><content1>".$rs->content."</content1><date>".$rs->showdate."</date><time>".$rs->id."</time></content>" ;}$xml=$xml.$content."</contents>" ;echo $xml ;mysql_close() ;?>[/code]startsend.php
- PHP code
<?php error_reporting(E_ALL & ~E_NOTICE); $id=$_GET["key"] ; include_once("conn.php") ; $result=mysql_query("delete from chatcontent where id='$id'") ; if($result){ echo "1" ; //echo "<script type='text/javascript'>window.location='del.php' ;</script>" ; } mysql_close() ;?>
在del.php页面,什么也显示不出来。
[解决办法]
下午认真的测试了你的代码,的确没有发现问题
当然数据库相关的部分是变化了的
如果依然存在问题,应该就是数据库相关了
为检查可能出现的问题,你可以在
var xmlDoc=xmlHttp.responseXML ;
之前加一句
alert(xmlHttp.responseText);
或之后加一句
alert(xmlDoc.xml);
用以检查返回的数据是否正常
[解决办法]
嗯 如果代码没问题,看看返回的数值是否是预期的那样。
把文件编码都保存成UTF-8看看,貌似我记忆里也碰过这样的事,就是返回的结果其实不是自己想的那样.或者肉眼看起来是个1 实际上 ... 具体情节已经多数忘记了.