Почему мои данные AJAX пусты, даже если вывод переменной до ajax правильный?

$(document).ready(function () {
    $("#p").change(function () {
        var p_id = $(this).val();
        console.info(p_id);     //<-------
        $.ajax({
            url: "m/a/a.class.php",
            method: "POST",
            data: {pId: p_id},
            dataType: "text",

            success: function (data) {
                console.info(data); //<------
            }
        });

    });

Я хочу передать свои данные в PHP, но когда я пытаюсь использовать их для запроса, они пусты, поэтому я добавил console.info до и после сценария AJAX.

Прежде чем он даст мне правильное значение ("id") выбранного продукта, например «9», но console.info в сценарии AJAX просто возвращает пустое значение «».

В чем проблема? Я неправильно понимаю код AJAX?

ОБНОВИТЬ:

case 'linie':
               if (isset($_POST['pId'])){
                $t = $_POST['pId'];
                }
                $sql = 'SELECT l.id, l.bezeichnung as bezeichnung '
                    . 'FROM l  "
                    . 'LEFT JOIN p ON p.id=l.p_id '
                    . 'WHERE l.p_id  = "'.$t.'" AND l.deleted=0 AND p.deleted=0  '
                    . 'ORDER BY l.bezeichnung ';
                break;

Это соответствующая часть моего PHP-кода, в которой я пытаюсь получить предыдущий ввод.

ОБНОВЛЕНИЕ 2:

$(document).ready(function () {
    $("#p").change(function () {
        var p_id = $(this).val();
         console.info(p_id);
         $.ajax({
        method: "POST",
        url: "m/a/a.class.php",
        data: { pID: $('#p').val() },
        async: true,
        dataType: 'text', (...)

Когда я изменил его на это, у меня сработало :)

data будет тем текстом, который отправляет ваша PHP-страница. Он что-нибудь отправляет обратно? Посмотри в сетевой консоли.
T.J. Crowder 08.08.2018 17:22

Предположительно потому, что modules/ausschuss/ausschuss.class.php (который не похож на сценарий PHP, предназначенный для запроса напрямую браузером) ничего не выводит. Что вы ожидаете от него вывода. Какой в ​​ней код?

Quentin 08.08.2018 17:22

Он содержит запросы, которые заполняют выборку и предоставляют все страницы и другие функции для моего приложения. Это php-файл, в котором я хочу использовать $ _POST ['produktId'. Я сначала попробую заглянуть в сетевую консоль.

RYU5 08.08.2018 17:26

не могли бы вы поделиться с нами соответствующей частью php-кода?

Lelio Faieta 08.08.2018 17:28

@LelioFaieta Я только что добавил это выше.

RYU5 08.08.2018 17:34

@ T.J.Crowder Я не совсем уверен, где искать ответ в сетевой консоли, поэтому я ничего не нашел.

RYU5 08.08.2018 17:37

вы находитесь внутри переключателя, который ищет значение 'linie'. Откуда это взялось? Возможно, вам нужно передать его в вызове ajax, иначе вы никогда не войдете в этот фрагмент кода.

Lelio Faieta 08.08.2018 17:40

@ mike123 - регистр не учитывается. Пожалуйста, не делайте предположений.

Quentin 08.08.2018 17:42

«Это соответствующая часть моего PHP-кода» - он уязвим для SQL-инъекции (или был бы, если бы вы когда-либо передавали этот SQL-код в базу данных) и ничего не выводит.

Quentin 08.08.2018 17:43

@ mike123 - Один из них (метод и тип) является псевдонимом для другого.

Quentin 08.08.2018 17:46

@LelioFaieta Это переключатель для разных запросов, так как я использую 4 Selectpickers, поэтому в каждом случае он показывает соответствующие данные. Поскольку моя основная проблема в том, что я даже не получаю вывод в консоли, я не могу судить, входит ли он в этот фрагмент кода или нет.

RYU5 08.08.2018 17:51

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

Lelio Faieta 08.08.2018 18:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
12
54
1

Ответы 1

Я предполагаю, что вы играете в данные.

Эти данные

data: {produktId: p_id},

не то же самое, что и эти данные

success: function (data) {

Лучше написать это будет

$("#produkt").change(function () {
        var p_id = $(this).val();
        console.info(p_id);     //<-------
        $.ajax({
            url: "modules/ausschuss/ausschuss.class.php",
            method: "POST",
            data: {produktId: p_id},
            dataType: "text",

            success: function (response) {
                console.info(response); //<------
            }
        });

    });

Обратите внимание на параметр блока success

Итак, эти данные data: {produktId: p_id}, - это деталь, которую вы передаете в вызов ajax.

И вызов ajax может возвращать или не возвращать ответ, который возвращается в блоке успеха как response.

Пример

Прежде всего спасибо. Я пробовал, но вывод все равно пустой. Как раньше получаю ID выбранного товара, а внизу пустой результат

RYU5 08.08.2018 17:35

Другие вопросы по теме