В настоящее время я работаю над чатом на Facebook, с тремя разными окнами чата, которые должны работать одновременно Я могу отправлять и читать сообщения из своей базы данных, но у меня возникают проблемы с отображением этой информации в нужном месте. В chat.php
у меня есть этот фрагмент кода:
$.ajax({
url: "fetch_user_chat_history.php",
method: "POST",
data: jQuery.param({receiver_id:receiver_id, num:num}),
success: function(data) {
$('$chat_history_'+receiver_id).html(data);
}
});
Теперь я могу правильно читать данные из моей базы данных в fetch_user_chat_history.php
, но когда я перебираю свои сообщения, я не могу вывести их правильно вернуться в чат. php. Вот мои fetch_user_chat_history.php
:
<?php
include "opendb.php";
session_start();
$output1 = '';
$output2 = '';
$increment = 0;
$sender = $_SESSION['user_id'];
$receiver_id = $_POST['receiver_id'];
$chatboxnum = $_POST['num'];
$query = 'SELECT content, timestamp_chat, sender_id FROM messages WHERE (sender_id = '.$sender.' AND receiver_id = '.$receiver_id.' OR (sender_id = '.$receiver_id.' AND receiver_id = '.$sender.'))';
$statement = $db->prepare($query);
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
switch ($chatboxnum) {
case 1:
foreach ($result as $row) {
if ($row['sender_id']==$sender) {
echo '<script>var para = document.createElement("div");';
echo 'para.innerHTML = '.$row["content"].';';
echo 'var att = document.createAttribute("class");';
echo 'att.value = "msg-send";';
echo 'para.setAttributeNode(att);';
echo 'document.getElementById("sendbox-1").appendChild(para);';
echo 'document.body.appendChild(para); </script>';
}
else {
echo "var element = document.getElementById('receivebox-1'); element.classList.add('msg-receive');";
}
$increment += 1;
}
break;
}
?>
Ни одно из моих echo
утверждений ничего не добавляет к chat.php
. Я уверен, что это очень легко исправить, так как я делал это раньше, но я не могу заставить его работать. Прошу прощения за длинный пост.