$(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', (...)
Когда я изменил его на это, у меня сработало :)
Предположительно потому, что modules/ausschuss/ausschuss.class.php (который не похож на сценарий PHP, предназначенный для запроса напрямую браузером) ничего не выводит. Что вы ожидаете от него вывода. Какой в ней код?
Он содержит запросы, которые заполняют выборку и предоставляют все страницы и другие функции для моего приложения. Это php-файл, в котором я хочу использовать $ _POST ['produktId'. Я сначала попробую заглянуть в сетевую консоль.
не могли бы вы поделиться с нами соответствующей частью php-кода?
@LelioFaieta Я только что добавил это выше.
@ T.J.Crowder Я не совсем уверен, где искать ответ в сетевой консоли, поэтому я ничего не нашел.
вы находитесь внутри переключателя, который ищет значение 'linie'. Откуда это взялось? Возможно, вам нужно передать его в вызове ajax, иначе вы никогда не войдете в этот фрагмент кода.
@ mike123 - регистр не учитывается. Пожалуйста, не делайте предположений.
«Это соответствующая часть моего PHP-кода» - он уязвим для SQL-инъекции (или был бы, если бы вы когда-либо передавали этот SQL-код в базу данных) и ничего не выводит.
@ mike123 - Один из них (метод и тип) является псевдонимом для другого.
@LelioFaieta Это переключатель для разных запросов, так как я использую 4 Selectpickers, поэтому в каждом случае он показывает соответствующие данные. Поскольку моя основная проблема в том, что я даже не получаю вывод в консоли, я не могу судить, входит ли он в этот фрагмент кода или нет.
я говорю вам, что это не так, если вы не укажете значение переменной, которую используете в переключателе: и вы этого не делаете



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я предполагаю, что вы играете в данные.
Эти данные
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 выбранного товара, а внизу пустой результат
dataбудет тем текстом, который отправляет ваша PHP-страница. Он что-нибудь отправляет обратно? Посмотри в сетевой консоли.