用ajax做聊天室,发布消息未实现局部添加,提交后页面整个刷新了,请帮忙看看。

zyjj1688 2012-11-18 09:35:36
应该提交之后动态添加新插入的消息,现在是数据能插入成功,但是点击提交按钮后就刷新整个页面了,因为是重新加载,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>

...全文
132 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
偶是江湖中人 2012-11-21
  • 打赏
  • 举报
回复
偶现在也在做聊天室,正在学习ajax中
奇乐二二二 2012-11-18
  • 打赏
  • 举报
回复
<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去提交

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧