Мой сайт полностью асинхронный, большая часть html создается и уничтожается на нажатия кнопок, и каждый из них предотвращает навигацию.
В этой части я создаю форму с массивом радиочастот «от 1 до 10», отправляйте ее с помощью jQuery.ajax () и отправляйте ее для обработки, где она либо отсылается обратно (на данный момент), либо эхо «ничего не было выбрано».
Это форма,
<?php <form id="surveyForm" action="processSurvey.php" method="post"> <h3>Alimentos</h3> <h4>Sabor</h4> <div class="form-group">'; for ($i = 0; $i <= 10; $i++) { echo ' <span class="lead form-options">' .'</span> <label class="radio-inline"> <input type="radio" name="sabor" id="saborRadio'. $i .'" value="'. $i .'">'. $i.' </label>'; } echo ' </div> <div class="form-group"> <button class="btn btn-default surveyForm-btn" type="submit">Enviar</button> </div> </form> ?>
Это javascript:
$('body').on('click', '.surveyForm', function(){ console.log("Clicked on .surveyForm-btn"); var data = $('#surveyForm').serialize(); console.log( data ); $.ajax({ method: "POST", url: "processSurvey.php", data: data, success: function(result){ console.log("Ajax call to processSurvey success"); $("#surveyForm").clearForm(); console.log(result); console.log( data ); } }); return false; });
И это процесс php:
<?php if (isset($_POST['sabor'])) // if ANY of the options was checked echo $_POST['sabor']; // echo the choice else echo "nothing was selected."; print_r($_POST); ?>
Это консоль после нажатия кнопки «С» с выбранным радиоблоком:
Clicked on #surveyForm [EMPTY LINE] Ajax call to processSurvey success nothing was selected. [EMPTY LINE]
Это означает, что подача выполнена успешно, но данные формы пусты. Я пытался найти проблему со вчерашнего дня, я уверен, что неправильно передаю данные, но не могу найти что-либо в Google, что я не пробовал.
EDIT: добавлено большинство ошибок, проблема сохраняется. Может быть, структура html неверна? Форма и подача не кажутся связанными.
EDIT 2: я нашел что-то очень странное, в конечном коде, кажется, есть дополнительный закрывающий тег, как это
<form id="surveyForm" action="processSurvey.php" method="post"></form> <h3>Alimentos</h3> <h4>Sabor</h4>
Я понятия не имею, откуда это происходит, но это проблема.