チャットボックスを作ったのですが、不要なコメントを削除するときに問題があります。挿入された各コメントの 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();
});
}
これは action: 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>: <span class="styleMsgDel">'.$row['message'].'</span></br>';
else // Showing the rest of the messages
echo '<span class="styleUsName">'.$row['userName'].'</span>: <span class="styleMsgDel">'.$row['message'].'</span> <span class="styleDelMsg" onClick="deleteMsg('.$row['id'].')">delete</span></br>';
}
}
したがって、基本的にメッセージが削除されると、div は最後の 60 個のメッセージが挿入された状態でリロードされます。メッセージを削除している人には機能しますが、コードを実行しているのは彼だけなので、すべての人には機能しません。
みんなへのメッセージでパネルを更新するにはどうすればよいですか? 御時間ありがとうございます。