Есть форма с чекбоксами. Нужно в PHP-обработчике получить значения всеx отмеченных чекбоксов. Использую jquery и метод serialize() для формы. После отправки в обработчик на сайте должен сработать поиск по выбранным критериям, но ничего не происходит. Если отправлять через обычный action, то всё работает. Как правильно сделать передачу через Ajax?
Разметка выглядит примерно так:
<form id='form'>
<ul>
<li>
<input type="checkbox" name='pid[]' value="1"/ >Рязанский</li>
<li>
<input type="checkbox" name='pid[]' value="2"/>Спасский</li>
<li>
<input type="checkbox" name='pid[]' value="3"/>Касимовский</li>
<li>
<input type="checkbox" name='pid[]' value="4"/>Клепиковский</li>
<li>
<input type="checkbox" name='pid[]' value="5"/>Кораблинский</li>
<li>
<input type="checkbox" name='pid[]' value="6"/>Михайловский</li>
<li>
<input type="checkbox" name='pid[]' value="7"/>Пронский</li>
<li>
<input type="checkbox" name='pid[]' value="8"/>Ряжский</li>
<li>
<input type="checkbox" name='pid[]' value="9"/>Сапожковский</li>
<li>
<input type="checkbox" name='pid[]' value="10"/>Сараевский</li>
<li>
<input type="checkbox" name='pid[]' value="11"/>Сасовский</li>
<li>
<input type="checkbox" name='pid[]' value="12"/>Скопинский</li>
<li>
<input type="checkbox" name='pid[]' value="13"/>Шацкий</li>
<li>
<input type="checkbox" name='pid[]' value="14"/>Шиловский</li>
<li>
<input type="checkbox" name='pid[]' value="15"/>Старожиловский</li>
<li>
<input type="checkbox" name='pid[]' value="16"/>Кадомский</li>
<li>
<input class="knopka" type="submit" name="formSubmit" value="Далее"/>
</li>
</ul>
</form>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script type="text/javascript">
$("#form").submit(function (e) { // Устанавливаем событие отправки для формы с id=form
e.preventDefault();
var form_data = $(this).serialize(); // Собираем все данные из формы
$.ajax({
type: "POST", // Метод отправки
url: "Vyzi.php", // Путь до php файла отправителя
data: form_data,
success: function () {
location.href = 'Spec.php';
}
});
});
</script>
2 форма с checbox
<form id='form'>
<ul>
<li>
<input type="checkbox" name='pit[]' value="1"/>Технический профиль</li>
<li>
<input type="checkbox" name='pit[]' value="2"/>Естественнонаучный профиль</li>
<li>
<input type="checkbox" name='pit[]' value="3"/>Социально-экономический профиль</li>
<li>
<input type="checkbox" name='pit[]' value="4"/>Гуманитарный профиль</li>
<li>
<input class="knopka" type="submit" name="formSubmit" value="Далее" />
</li>
</ul>
</form>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script type="text/javascript">
$("#form").submit(function (e) {
e.preventDefault();
var form_data = $(this).serialize();
$.ajax({
type: "POST",
url: "Function.php",
data: form_data,
success: function () {
location.href = 'Vyzi.php';
}
});
});
</script>
обработчик:
<?php
if (isset($_POST['pid'])) { $aDoor = $_POST['pid'];}
if (isset($_POST['pit'])) { $aDooor = $_POST['pit'];}
echo $massiv;
echo $massivv;
//выборка регионов
if(empty($aDoor))
{
$posts = get_categories();
}
else
{
$N = count($aDoor);
for($i=0; $i < $N; $i++)
{
$array[] .= $aDoor[$i];
$massiv = implode(",", $array);
}
$posts = get_categoriess();
}
echo $massiv;
//выборка профилей
if(empty($aDooor))
{
$posts = get_categories();
}
else
{
$N = count($aDooor);
for($i=0; $i < $N; $i++)
{
$arrray[] .= $aDooor[$i];
$massivv = implode(",", $arrray);
}
$posts = get_categoriesss();
}
echo $massivv;
//Все записи
function get_categories() {
global $link;
$sql = 'SELECT * FROM ссузы';
$result = mysqli_query($link, $sql);
$categories = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $categories;
}
function get_ssuz () {
global $link;
$sql = 'SELECT * FROM ссузы';
$result = mysql_query($link,$sql);
$posts = mysqli_fetch_all($result,MYSQLI_ASSOC);
return $posts;
}
//Записи по регионам
function get_categoriess() {
global $link;
global $massiv;
$sql = "SELECT * FROM `ссузы` WHERE id IN ($massiv)" ;
$result = mysqli_query($link, $sql);
$categories = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $categories;
}
function get_ssuzz () {
global $link;
//global $massiv;
$sql = "SELECT * FROM `ссузы` WHERE id IN ($massiv)";
$result = mysql_query($link,$sql);
$posts = mysqli_fetch_all($result,MYSQLI_ASSOC);
return $posts;
}
//Записи по профилям
function get_categoriesss() {
global $link;
global $massivv;
$sql = "SELECT * FROM `ссузы` WHERE spec IN ($massivv)" ;
$result = mysqli_query($link, $sql);
$categories = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $categories;
}
function get_ssuzzz () {
global $link;
global $massivv;
$sql = "SELECT * FROM `ссузы` WHERE spec IN ($massivv)";
$result = mysql_query($link,$sql);
$posts = mysqli_fetch_all($result,MYSQLI_ASSOC);
return $posts;
}
?>
вывод в Vyzi,php
<?php foreach($posts as $post): ?>
<div class="product-wrap" >
<div class="product-item">
<img src="<?=$post['img']?>">
<div class="product-buttons">
<a href="<?=$post['href']?>" class="button">Подробнее</a>
</div>
</div>
<div class="product-title">
<p><?=$post['Ssuz']?></p>
</div>
</div>
<?php endforeach;?>