@a_pussycan
Начинающий веб-программист

Как обработать запрос?

Пишу модуль отзывов на ajax и php.
Собственно запрос в БД происходит, и json_encode мне публикует ответ, но получить я его не могу, постоянно срабатывает alert(error), в чем ошибка?

<h2>Отзывы</h2>
<input type="text" name="user" placeholder="Введите имя" value="" id="user">
<input type="text" name="text" placeholder="Введите комментарий" value="" id="text">
<button id="sendtext">Отправить</button>
<div class="comments"></div>


$(document).ready(function () {
    $("#sendtext").on("click", function () {
      var user = $("#user").val();
      var text = $("#text").val();
      $.ajax({
        url: "comment.php",
        type: "post"
        contentType: "json",
        data: {
          user: user,
          text: text
        },
          error: function () {
          alert("ERROR");
        },
        success: function (data) {
          console.log(data)
        }
        })
      })
    });


<?php header('Content-Type: application/json');
$host ="localhost";
$userdb ="root";
$pass =""; 
$db_name="less5";



$connect = mysqli_connect($host, $userdb, $pass, $db_name);
if ($connect)
  echo "success";
$user = $_POST['user'];
$text = $_POST['text'];

$addcomment = mysqli_query($connect, "INSERT INTO `chat` (`id`, `user`, `text`) VALUES ('', '{$user}', '{$text}')");
if ($addcomment) {
 echo "addcomment";
}


$allcomments = mysqli_query($connect, "SELECT * FROM `chat`");
$array_result = array();
while ($row = mysqli_fetch_assoc($allcomments)) {
      $array_result[] = $row;
}

echo json_encode($array_result);
  • Вопрос задан
  • 84 просмотра
Решения вопроса 2
@akamap
зачем ?
echo "success";
и
echo "addcomment";
Ответ написан
KusokBanana
@KusokBanana
Fullstack-разработчик
В ajax ты указал, что ожидаешь в ответ json с сервера (как и на сервере указал заголовки json), при этом на сервере выдаешь строку + json, из-за чего получается неверный формат данных. Убери echo success и addcomment (можешь перенести в тот же json) и будет тебе счастье
В идеале в таких случаях нужно всегда непосредственно перед выводом ответа сервера очищать буфер
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 17:04
5000 руб./за проект
29 мар. 2024, в 17:03
3000 руб./за проект
29 мар. 2024, в 16:58
3000 руб./за проект