Невозможно получить $ _POST ('input') с помощью jQuery .submit ()

Я пытался загрузить форму с помощью jQuery submit() и успешно перенаправил страницу на uploadAll.php, но когда я пытался получить входной массив с помощью $_POST['inputname'], я не мог получить значение.

Я пытался использовать serialize(), но не понимаю, где мне разместить ссылку на страницу PHP.

<form id = "regForm" action = "uploadAll.php" method = "post" enctype = "multipart/form-data">
  //some inputs and a hidden input here
</form>
document.getElementById("regForm").submit(function() {
  var inputValues = $(this).serialize();

  $.ajax({
    url: "uploadAll.php",
    type: "POST",
    data: inputValues
  }).done(function(data) {
    alert(data);
  });
});

return false;

Могу я просто отправить без использования serialize()? Кажется, моя сериализация не работает. Любая помощь приветствуется

Ваш return false находится вне обработчика событий. serialize() также отлично работает, и ваша логика выглядит нормально. Трудно сказать, в чем именно заключается проблема, не видя полной логики HTML и PHP.

Rory McCrossan 12.12.2018 10:32

Какая ошибка отображается в консоли

Biswajit 12.12.2018 10:33

Вы не делаете preventDefault(), чтобы остановить нормальную отправку формы

RiggsFolly 12.12.2018 10:37
Маленькая заметка Если вы сильно резюмируете свой код, нам становится труднее быть полезными
RiggsFolly 12.12.2018 10:38

Поскольку вы не показываете нам HTML, который показал бы нам, что у вас действительно есть поле с name = "inputname", просто выполните var_dump($_POST);, чтобы увидеть, что вы фактически передаете PHP

RiggsFolly 12.12.2018 10:40

Спасибо за помощь, Рори, Бисваджит, Риггсфолли. В консоли нет ошибки. И когда я пробую var_dump ($ _ POST), на выходе получается array (0) {}. Я думаю, проблема заключается в передаче входного значения в php, а не в самом имени входа ..

Nechw shauidh 12.12.2018 11:14
Поведение ключевого слова "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) для оценки ваших знаний,...
3
6
112
1

Ответы 1

поверьте мне, ваш код неправильный ..

попробуйте вместо этого использовать этот код:

$("#regForm").on('submit', function(e) {
  e.preventDefault();
  var inputValues = $(this).serialize();

  $.ajax({
    url: "uploadAll.php",
    type: "POST",
    data: inputValues
  }).done(function(data) {
    alert(data);
  });
});

Спасибо за помощь, Syamsoul. Я пробовал ваш код, и вывод направлен не на uploadAll.php, а только на страницу sampe с Uncaught TypeError: Cannot read property 'style' of undefined. почему вы думаете, что мой код неправильный, потому что я использую метод submit ()?

Nechw shauidh 12.12.2018 11:17

да .... метод submit () неправильный ... вы должны использовать объект jQuery для прослушивания события submit ... если вы все еще хотите использовать чистый javascript, вы должны использовать код вроде этого document.getElementById("regForm").addEventListener("submit"‌​, function(){ }); ... но если вы используете jQuery на своем сайте, лучше использовать $("#regForm").on('submit', function(e) { });

Syamsoul Azrien 12.12.2018 11:24

Я использовал этот код для изменения значения кнопки: <button type = "button" id = "nextBtn" class = "btn blue" onclick = "nextPrev (1)"> Next </button> и этот: if (n = = (x.length - 1)) {document.getElementById ("nextBtn"). innerHTML = "Отправить"; } еще {документ.getElementById ("nextBtn"). innerHTML = "Далее"; }. когда я снова попробовал ваш код, он обнаружил ошибку в консоли: Uncaught TypeError: Cannot read property 'style' of undefined. Думаю, я тоже проверю код оттуда

Nechw shauidh 12.12.2018 11:34

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