0

Отправляю AJAX запрос, но в PHP обработчик приходит пустой массив. Уже второй день сижу, все, что знал, перепробовал, ничего не помогает. Help, please!

Ajax запрос:

let elements = document.querySelectorAll('input.item_part-number');
    for (let elem of elements) {
        elem.addEventListener("change",()=>{
            let value = elem.value; 
            $.ajax({
                url: "newrequpdate.php", 
                type: "post",
                data: {'result': value},
                success: function (response) {
                console.log(value);
                },
                error: function (error) {
                console.error("Ошибка при отправке данных: ", error);
                },
                });
        })
    }

PHP обработчик:

<?php
var_dump($_POST);

Вот, что распечатывается в браузере на странице php обработчика:

array(0) { }
ZxNuClear
  • 2,075
ruslan110
  • 1
  • 1
  • 1
    "Вот, что распечатывается в браузере на странице php обработчика:" --- а почему вы смотрите это на странице обработчика, а не в консоли, как и должны? ...и почему вы уверены, что в elem.value что-то есть? – Алексей Шиманский Aug 20 '23 at 17:19
  • И ещё вопрос, почему вы написали "post" в свойство type, почему она написана маленькими буквами и какую версию Jquery используете? – Алексей Шиманский Aug 20 '23 at 17:24
  • В консоли на странице обработчика результат тот же - array(0) { }. То что, в elem.value что то есть вижу в Network Preview на странице ввода данных - array(1) { ["result"]=> string(3) "789" }. POST исправил на больше, спасибо. Версия - jquery-3.6.0 – ruslan110 Aug 20 '23 at 17:43
  • прокатило POST, получается? – Алексей Шиманский Aug 20 '23 at 17:44
  • нет, все так же осталось :( – ruslan110 Aug 20 '23 at 17:54
  • Надо поменять type на method, т.к. доккументация (https://api.jquery.com/jquery.ajax/) говорит type - An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0. – Алексей Шиманский Aug 20 '23 at 17:55
  • "То что, в elem.value что то есть вижу в Network Preview" --- так "Preview" это то, что приходит от сервера... Значит всё же данные приходят. Получается проблемы нет – Алексей Шиманский Aug 20 '23 at 17:56
  • type на method исправил, результат тот же. "так "Preview" это то, что приходит от сервера.." - вопрос как увидеть эти данные на странице php обработчика? Мне же нужно с ним работать, а я их даже посмотреть не могу... – ruslan110 Aug 20 '23 at 18:08
  • Их можно посмотреть двумя способами: 1) через отладчик https://ru.stackoverflow.com/a/701146/191482 .... 2) вначале сделать всё тоже самое без ajax, то есть запрос отправлять формой на php, наладить весь процесс, а потом заменить на ajax.....Лучше первым способом. Это настраивать долго, зато в будущем пригодится на 1000%
    ..............Потому что вы не понимаете именно сам процесс взаимодействия клиент-сервера.... и вам надо прочитать как оно работает......Сейчас вы пытаетесь позвонить в дверь квартиры, потом заходите в квартиру, а там звука нет)))
    – Алексей Шиманский Aug 20 '23 at 18:13
  • понял))) спасибо, буду пробовать. – ruslan110 Aug 20 '23 at 18:16
  • Отладчик вначале просто настройте на чистом PHP коде. Потому что если он настроен, то при запросе откуда либо и установленном breakpoint отладка сработает и потом, даже если запрос через ajax или ещё откуда либо – Алексей Шиманский Aug 20 '23 at 18:18
  • И это.... статья чуууууууууууточку усторела.... там для версии >=php8.0 нужен будет порт устанавливать не 9000, а 9003 вроде..... погуглите) – Алексей Шиманский Aug 20 '23 at 18:20

0 Answers0