你好傢伙我想與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