gpt4 book ai didi

php - 如何改进聊天框中评论的显示方式 JavaScript/PHP

转载 作者:行者123 更新时间:2023-12-02 18:58:30 24 4
gpt4 key购买 nike

我制作了一个聊天框,但是在删除不需要的评论时遇到了问题。我有一个与插入的每个评论的 onclick 事件关联的删除函数这就是我显示评论的方式:(评论存储在数据库中)

var refreshMsg = setInterval(function() {
$.post("chatFunc.php", { action: "load", id_userMsg: '<?php echo $id_user; ?>' },
function(dVLoadUsers) {
$("#divMsg").append(dVLoadUsers); // appending the new comments into a div $("#divMsg").scrollTop($("#divMsg")[0].scrollHeight);
});
}, 399); // Loop time in milliseconds

这是删除函数(jquery):

function DeleteMsg(id_msg){
$.post("chatFunc.php", { action: "del", id_msgChat: id_msg, id_userMsg: '<?php echo $id_user; ?>' },
function(dVLoad) {
$("#divMsg").html(dVLoad);
$("#inputMsg").val("").focus();
});
}

这是 php 中的操作:“del”:

if($action == "del"){
$msgDeleted = "Comment Deleted";
$qBorraMsj = mysqli_query($classDB->con,"UPDATE chat SET message = '$msgDeleted ' WHERE id LIKE '$id_msgChat'"); // Updating message content to "Comment Deleted"
$qChat = mysqli_query($classDB->con,"SELECT id, message, userNameFROM chat ORDER BY id ASC LIMIT 60"); // Getting the last 60 messages inserted
while($row = mysqli_fetch_array($qChat) ){
if($row['message'] == $msgDeleted ) // Showing deleted messages
echo '<span class="styleUsName">'.$row['userName'].'</span>:&nbsp;<span class="styleMsgDel">'.$row['message'].'</span></br>';
else // Showing the rest of the messages
echo '<span class="styleUsName">'.$row['userName'].'</span>:&nbsp;<span class="styleMsgDel">'.$row['message'].'</span>&nbsp;<span class="styleDelMsg" onClick="deleteMsg('.$row['id'].')">delete</span></br>';
}
}

所以,基本上当一条消息被删除时,div 会重新加载并插入最后 60 条消息。它适用于删除消息的人,但不适用于所有人,因为只有他在执行代码。

如何刷新面板并向所有人发送消息?感谢您抽出时间。

最佳答案

喜欢Jon建议,您可以将已显示的最新消息的 ID 发送到服务器,然后仅获取比该消息更新的消息。然后,您可以 .append() 新消息,而不是使用 .load() 清除整个 div。

关于php - 如何改进聊天框中评论的显示方式 JavaScript/PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com