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

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

vlad plotnikov Ученик (143), закрыт 7 месяцев назад
Делаю мессенджер на веб-сайте.
После 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 запроса на ввод данных.
код вывода:
  
Лучший ответ
evgen_dev Гуру (2802) 11 месяцев назад
Ну так и возвращай контент в ответе и добавляй его куда нужно.
json_encode($message) условно, на стороне сервера
 $.post("add_message.php?id=",  {content_mesage_input: contentValue}, function(res) {
$('#messages').append(res['content']);
}, 'json');

Гугли в сторону long pooling, websocket или server side events, если хочешь real time чат.
Остальные ответы
Cepгей Мудрец (12248) 11 месяцев назад
if (isset($_POST['id'])){
$id = $_POST['id'];
}

Потому, что ты данные передаешь GET
$.ajax({
url:"ot_message.php?id=<?php echo $id; ?>

а скрипт обрабатывает POST

Выход из положения:
1 вариант. Поменяй в php уcловие для $id
  1. вариант. Замени в php $_POST['id'] на $_REQUEST['id']
  2. вариант. Перенеси в jq $id в data
  3. вариант используй конструкцию: var id=$('#id').val(); var message=$('#message').val();
    $.post("/add_message.php", {id:id, message:message},function(dater){alert(dater);});
Жуковский АндрейПросветленный (49696) 7 месяцев назад
Ничего не понял, но красиво)))
Похожие вопросы