用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);
}
}
<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>