Не удается получить данные POST через AJAX - PullRequest
0 голосов
/ 02 января 2019

Итак, что я пытаюсь сделать, это отправить некоторые переменные jQuery в мой PHP-скрипт, используя пост Ajax. Однако по какой-то причине я не могу установить переменные PHP, содержащие значения переменных jQuery.

Я пробовал несколько типов данных Ajax, таких как формы (новые FormData ();) и массивы.

script.js

$.ajax({
  url: 'file.php',
  type: 'POST',
  data: {
    'document_id': document_id,
    'section_id': section_id,
    'active_state': active_state
  },
  beforeSend: function () {
    console.log('the data is: ' + document_id + section_id + active_state + '...');
  },
  success: function (response) {
    console.log(response + ' is locked!');
  },
  fail: function (error) {
    console.log(error + ' could not be locked');

});

file.php

print_r($_POST);

Однако в функции успеха Ajax-запроса я действительно получаю массив с правильными переменными. Когда я проверяю вывод файла PHP, он просто возвращает пустой массив.

Вот что мне в конечном итоге нужно сделать:

if(isset($_POST['document_id'])){

    $document_id = $_POST['document_id'];
    $section_id = $_POST['section_id'];
    $active_state = $_POST['active_state'];

    // echo back the data to the success function
    // proceed with insert into database
} else {

  echo 'the data has not been set';    

}

Есть какие-нибудь идеи о том, что я могу делать неправильно?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Попробуйте добавить переменную токена в данные ajax.

На вашей текущей странице:

PHP

session_start();
if (empty($_SESSION['token'])) {
$_SESSION['token'] = bin2hex(random_bytes(32));
}
$token = $_SESSION['token'];

AJAX

data: {'_token': <?php echo $token; ?>}
0 голосов
/ 02 января 2019

Попробуйте использовать это, чтобы получить ответ от ajax-запроса

<?php

   extract($_POST);

   print_r($_POST);
 ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...