Мой jQuery AJAX не работает (последняя несжатая версия Jquery загружена) - PullRequest
0 голосов
/ 18 апреля 2020

Ajax, кажется, не работает для меня, не могли бы вы сказать мне причину этого, пожалуйста? Я пытаюсь создать приложение чата, поэтому я отправляю идентификатор отправителя, который уже сохранен из переменной сеанса php, и получателя, который всегда является администратором (имеет идентификатор 1)

** THE JQUERY ЧАСТЬ: **

echo '<script>
// show the modal
$("#ChatDialog").modal("toggle");
// send message
$(function() {
  $("#send").click(function(e) {
    var message = $("#message").val();
    var receiver = "1";
    var sender = "' . $id . '";

    if (message.length !== 0 & /\S/.test(message)) {

      e.preventDefault();

      $.ajax({
        url: "send.php",
        method: "POST",
        data: {
          sender: sender,
          receiver: receiver,
          message: message
        },
        success: function() {
          alert("success");
          $("#message").val("");
        }
      });
    } else {
      $("#message").val("Hi what\'s up with my order ?");
    }
  });
});
</script>';

** PHP ЧАСТЬ **

<?php
session_start();
if(isset($_SESSION['USERNAME']))
{
    if(isset($_POST['message']))
    {
        require_once 'database.php';
        $sender = $_POST["sender"];
        $message = $_POST['message'];
        $receiver = $_POST['receiver'];

        $query = "USE " . $database;
        $select = $connect->prepare($query);
        $select->execute();
        $query = "INSERT INTO CHATS (SENDER, RECEIVER, MESSAGE) VALUES (:SENDER, :RECEIVER, :MESSAGE)";
        $sql = $connect->prepare($query);
        $data = array(
            ':SENDER' => $sender,
            ':RECEIVER' => $receiver,
            ':MESSAGE' => $message
            );
        $sql->execute($data);
    }
}
else
{
    header('location:orders.php');
}  
?>

1 Ответ

0 голосов
/ 18 апреля 2020

Значение $_POST['sender'] всегда будет ' . $id . ', поскольку var sender = "' . $id . '"; не является значением, которое вы хотите вставить в свою базу данных.

Вы упоминаете, что идентификатор отправителя уже сохранен в сессия. Почему тогда вы используете $_POST['sender'] для получения идентификатора отправителя? Похоже, вы хотите использовать $_SESSION['sender'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...