你好家伙我想与Jquery,php,ajax和mysql建立聊天室 我几天以来面临的问题是,当我得到最后一条消息的值时,到div我想是附加的最后一条消息只有一次,再次追加如果有新的消息,这里是我的Ajax调用追加最后一条消息一次
var chat = "";
$.ajax({
url: "php/gt_user.php",
type: "get",
success: function (result) {
var gtUser = $.parseJSON(result);
$.each(gtUser, function (idx, obj) {
var usrApp = "<span><i class='fa fa-user-circle-o' aria-hidden='true'></i>";
usrApp += "<p class='usr-name'>" + obj.Tables_in_chat + "</p></span>";
$('.userarea').append(usrApp);
}); // here i get all the username who sent a message and print them on a div
$('.userarea span').on('click', function() {
$('.msgarea').html("");
var usrName = $(this).text();
$('#usrname').text(usrName);
setInterval(function() {
$.ajax({
url: "php/admin_msg.php",
type: "post",
data: {
name: usrName
},
success: function (result) {
var lastmsg = result;
function appedn() {
var usrMsg = "<div class='usr-msg'><i class='fa fa-user-circle-o' aria-hidden='true'></i>";
usrMsg += "<span><p>" + lastmsg + "</p></span></div>";
$('.msgarea').append(usrMsg);
}
if (chat !== result) {
appedn();
} else {
chat = result;
}
}
});
}, 2000);
});
}
});
从php/admin_msg.php
的respanse的工作,我拿到了最后的消息成功地在问题在于这个脚本不断地向消息区域添加相同的消息,而且我想要的是只添加一次消息,如果有新的消息
你可以发布来自php/admin_msg.php的回应吗?我会在响应中包含时间戳/消息ID,并且只接收新消息,在第一个请求上发送0,以及在下面的最新检索消息ID。 – Benjaco