Не удается получить данные, отправленные через ajax - PullRequest
0 голосов
/ 05 октября 2018

Извините за этот вопрос, но я не знал, что гуглить.

Я пытаюсь получить сообщение, отправленное через ajax.

echo $_POST['selected'];

Я отправляюпост с этим.

$(document).ready(function () {
    $("select.js-select").change(function () {
        var selected = $(".js-select option:selected").val();
        $.post(window.location.pathname, {selected: selected});
    });
});

Мне нужна информация в шапке (выбрано: 390)

К сожалению, я все еще получаю ошибку, которая говорит, что $ _POST ['selected'] нет

Я совершенно новичок в ajax, так что извините, если я сделал какую-то базовую ошибку или что-то в этом роде.

Изображение информации заголовка

изображение какэто должно выглядеть

картина, как это выглядит

Я не отправлял никаких данных раньше.Я только что проверил это с этим кодом.(Я не знаю, как я могу опубликовать HTML-код здесь, поэтому я сделал картинку)

Изображение из всего кода

здесь javascript, чтобы переделать его.

$(document).ready(function () {
    $("select").change(function () {
        var selected = $("select option:selected").val();
        $.ajax({
            type: 'POST',
            url: window.location.pathname,
            data: {
                selected: selected,
            }
        });
    });
});

Заголовок изображения с данными в нем

Изображение заголовка, который он имеет при загрузке страницы

1 Ответ

0 голосов
/ 05 октября 2018

изображение, как оно должно выглядеть

Это изображение показывает, в списке запросов слева, Ajax-запрос к PHP-скрипту внизу.Вы публикуете данные, используя JS в вопросе, и ответ содержит эти данные.

Представьте, как это выглядит

Теперь вы смотрите на ответ назапрос в самом верху списка.

Поскольку он находится вверху, это запрос основного документа.Это означает, что он не может быть ответом на запрос Ajax.


Давайте на минуту перейдем к командной строке для аналогии.

Тип: echo 1.

Вывод 1.

Теперь наберите echo.

Ничего не выводится.Он не выводит 1.

Когда вы запускаете программу дважды и не предоставляете ввод во второй раз.Он не действует так, как если бы он получил данные, которые вы отправили в прошлый раз.


Вы делаете два запроса на свой сервер.Оба они приводят к запуску программы PHP.Один вы делаете с Ajax и отправляете ему данные, на которые он отвечает в запросе.Другой вы делаете другим способом (может быть, вы отправляете форму, может быть, вы переходите по ссылке), и не включает данные , поэтому он отвечает, как если бы вы не включили данные.


Вам необходимо:

  1. POST нужных вам данных в то время , которые вы хотите, чтобы они появлялись в ответе
  2. Иметь PHP хранить данные из Ajax-запроса где-то (например, в сеансе или базе данных), а затем извлекать их, если он получит более поздний запрос, в котором данные отсутствуют.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...