Как отправить данные формы с помощью jquery ajax без обновления страницы и получения данных на странице запроса - PullRequest
0 голосов
/ 24 февраля 2019

Она - мой код HTML

<form id="msg_form">
<input type="text" name="msg_text">
<button type="submit" name="send">Send</button>
</form>

AJAX

$(function () {

    $('#msg_form').on('send', function (e) {

      e.preventDefault();
      $.ajax({
        type: 'POST',
        url: 'msg.php',
        data: $('#msg_form').serialize(),
        success: function () {

        }
      });

    });

  });

Теперь я хочу получить данные оСтраница запроса Как я могу отправить данные формы и получить их на странице Anthor Page Php Code

   $msg_text=$_POST['msg_text'];
   $receiver_id=$_POST['sender_id'];
   $sender_id=$_SESSION['u_id'];
   $sql="INSERT INTO massges (msg_text,sender_id,receiver_id) values('$msg_text', '$sender_id', $receiver_id)";
   $run=mysqli_query($con,$sql);

1 Ответ

0 голосов
/ 24 февраля 2019

Хорошо, вот приблизительное.Изменение, которое я внес в поле данных, - это правильный способ отправки данных обратно в виде запроса ajax.

jQuery

$(function () {
    $('#msg_form').on('send', function (e) {
      e.preventDefault();
      $.ajax({
        type: 'POST',
        url: 'msg.php',
        data: msg_text: $('input[name="msg_text"]'), /*And if you're posting back anything else from the page, sender_id possibly, define same way*/
        success: function () {
          alert('Posted successfully');
        }
      });
    });
  });

php Возможно, немного элегантнее, чем нужно, но я не был уверен, как далеко вы продвинулись, и, опять же, он более правильный .

if($_SERVER['REQUEST_METHOD'] == "POST"){
    if($_POST['msg_text'] != '' && $_POST['sender_id'] != '' && $_SESSION['u_id'] != ''){
        $db_connection = sql_connect();
        if($db_connection->connect_errno){
            echo "Failed to connect to db";
        } else {
            $msg_text = $_POST['msg_text'];
            $receiver_id = $_POST['sender_id'];
            $sender_id = $_SESSION['u_id'];
            $sql = "INSERT INTO `massges` (`msg_text`,`sender_id`,`receiver_id`) values('$msg_text', '$sender_id', $receiver_id)";
            if($db_connection->query($sql) === true){
                echo "Successfully inserted data";
            } else {
                echo "Data not inserted";
            }
        }
        $db_connection->close();
    }
}
//connects to db, return true/false for connection status
function sql_connect(){
    return new mysqli("localhost", "user", "password", "database", /*PORT*/ 3306);
}

Если вы также можете сообщить мне о любых ошибках, которые вы получаете, или о том, где они застряли, я, вероятно, могу предложить что-то еще.

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