Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не выводятся данные из бд, без перезагрузки страницы на AJAX

vlad plotnikov Ученик (143), закрыт 1 год назад
Делаю мессенджер на веб-сайте.
После ajax запроса на добавления данные:
  
данные корректно приходят в бд. Но когда пробую вывести, всё работает но только с перезагрузкой страницы:
     require "db_connect.php";  
if (isset($_POST['id'])){
$id = $_POST['id'];
}
$my_id = $_SESSION['user']['user_id'];

$all_messages = mysqli_query($db, "SELECT * FROM `message_content` WHERE (`from_id` = $my_id AND `u_id` = $id) OR (`u_id` = $my_id AND `from_id` = $id) ORDER BY `message_content`.`id` ASC ");

while ($message = mysqli_fetch_assoc($all_messages) ){
if ($message['from_id'] == $my_id) {
// Это сообщение от меня
echo '

' . $message['content'] . '

';
} else {
// Это сообщение от другого пользователя
echo '

' . $message['content'] . '

';
}
}
?>

Мне нужно сделать так, чтобы данные выводились сразу после ajax запроса на ввод данных.
код вывода:
  
Лучший ответ
Андрей Высший разум (469021) 1 год назад
Ну так поставь AJAX-запрос на получение данных в то место, где сейчас стоит:
 // alert( "Data Saved: " + msg ); 
в AJAX-запросе на отправку данных.
  
Колледж ВКЭиКПрофи (529) 1 год назад
Вообще, в другом вопросе, который был создан раньше по времени:

https://otvet.mail.ru/question/235067105

Говорится мол всё прекрасно выводится, но только тому, кто сообщение отправил. А тому кто его получил, нужно обновить страницу, чтобы увидеть результат.

Выходит, нужно подрубить библиотеку(если она необходима) и отправлять AJAX запрос с серверной стороны получателю, сразу после того, как сообщение придёт со стороны отправителя и запишется в БД.
Андрей Высший разум (469021) Колледж ВКЭиК, Не существует "AJAX-запроса с серверной стороны". Если инициатором запросов может быть сервер, используются либо длинные опросы, либо WebSocket, либо Server Sent Events. https://learn.javascript.ru/network
Остальные ответы
Похожие вопросы