@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) и будет тебе счастье
В идеале в таких случаях нужно всегда непосредственно перед выводом ответа сервера очищать буфер
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы