日期:2014-05-16  浏览次数:20678 次

用ajax做聊天室,发布消息未实现局部添加,提交后页面整个刷新了,请帮忙看看。
应该提交之后动态添加新插入的消息,现在是数据能插入成功,但是点击提交按钮后就刷新整个页面了,因为是重新加载,timestamp始终是0,所以总是一次读取全部数据,而不是动态加载新添加的信息。本人是新手,研究一天怎么也查不出病,请高手帮忙看看,谢谢!

send.js文件---------------------
 

 window.onload=function(){
//设置时间戳
var timestamp=0;
 var request;
 //更新内容
updateMsg();  
 //提交发布信息
    $('aa').onclick=function(){
  sendRequest();
   }

//创建xmlHttpRequest对象函数
function create_request(){
if(window.ActiveXObject){
request=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
request=new XMLHttpRequest();
}else{
alert("你的浏览器不支持ajax功能!")
}
}

//回调函数
function back_do(){

if (request.readyState == 4 && request.status == 200) {
var get1=request.responseText;
 var getsend=eval("("+get1+")");
$('body1').innerHTML= $('body1').innerHTML+getsend.sendtext;
          timestamp=getsend.timestamp;
}
else if (request.status == 404) {
alert("Request URL does not exist");
}
}

//发送
function sendRequest(){
create_request();
var url="member/content_send.php";
var data="q_id="+$('qid').innerHTML+"&"+"saytext="+$('text1').value+"&"+"action=post";
request.open("POST",url,true);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
request.onreadystatechange=back_do;
request.send(data);

}
//从数据库更新信息
function updateMsg(){
  create_request();
var url="member/content_send.php";
var data="q_id="+$('qid').innerHTML+"&"+"time="+timestamp+"&"+"action=update";
request.open("POST",url,true);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
request.onreadystatechange=back_do;
request.send(data);
    setTimeout(updateMsg,3000);
}
//取id的值
function $(id){
return document.getElementById(id);
}
}



php页面--------------------------


<div id='body1'>
</div>

<div id='footer'>
<form  method="post" action="">
<input type="hidden" name="q_id" value="<?php echo $q_id;?>"/>
<textarea id='text1' name='saytext'>在此输入文本...</textarea>
<input type="submit"  id='aa'   value=''/>
</form>
</div>


------解决方案--------------------
<form  method="post" action="">
<input type="hidden" name="q_id" value="<?php echo $q_id;?>"/>
<textarea id='text1' name='saytext'>在此输入文本...</textarea>
<input type="submit"  id='aa'   value=''/>
</form>

sumbit+form能不提交么。。

用js去提交