У меня есть сайт с несколькими страницами с checbox, мне нужно сначала с одной страницы запомнить значения выбранных потом со следующей, передать всё это в файл обработчик, и там уже идёт выборка через запрос из бд, на основе этих значений. Результат выводится на отдельной странице. Когда у меня была одна страница с checbox, данные передавались через стандартный action и всё работало, но с 2 так не проходит.Подскажите как правильнее это реализовать?
страница с 1 checbox
<form action='function.php' method="post">
<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>
страница со 2 checbox
<form action='function.php' method="post">
<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>
обработчик function.php
<?php
header("Content-Type: text/html; charset=utf-8");
require_once 'connect.php';
ini_set('display_errors','On');
error_reporting(E_ALL);
global $massiv;
global $massivv;
global $aDoor;
global $array;
global $arrray;
if (isset($_POST['pid'])) { $aDoor = $_POST['pid'];}
if (isset($_POST['pit'])) { $aDooor = $_POST['pit'];}
//выборка регионов
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();
}
print_r ($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;
}
?>
здесь выводится нужная мне информация
<?php
header("Content-Type: text/html; charset=utf-8");
require_once 'connect.php';
require_once 'Function.php';
?>
<htmL>
<head>
<title>Список вузов</title>
<link rel="stylesheet" href="css/vuz.css">
</head>
<body>
<?php
ini_set('display_errors','On');
error_reporting(E_ALL);
?>
<div class="header1">
<p class="zag">Список ссузов</p>
</div>
<?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;?>
Подскажите как правильнее это реализовать?
Правильнее начать с именования таблиц и полей в БД.
Для передачи значений выбранных checkbox
из одной формы в форму на другой странице можно воспользоваться скрытым полем type="hidden"
:
index.php
<form action="steps.php" method="post">
<fieldset>
<legend>Выберите город</legend>
<label><input type="checkbox" name="cities[]" value="62" /> Рязань<label>
<label><input type="checkbox" name="cities[]" value="77" /> Москва<label>
</fieldset>
<button type="submit">Далее >></button>
</form>
steps.php
<?php
if (empty($_POST['cities'])) {
die('Не выбран город.');
}
// Предварительно склеиваем города,
// для вставки в скрытое поле.
$cities = array_map('intval', $_POST['cities']);
$cities = implode(',', $cities);
?>
<form action="complete.php" method="post">
<fieldset>
<legend>Выберите район</legend>
<!--
Используем скрытое поле.
Его значение будет передано на следующую страницу.
-->
<input type="hidden" name="cities" value="<?= $cities ?>" />
<label><input type="checkbox" name="districts[]" value="202" /> Восточный</label>
<label><input type="checkbox" name="districts[]" value="200" /> Центральный</label>
</fieldset>
<button type="submit">Далее >></button>
</form>
complete.php
<?php
if (empty($_POST['districts']) or empty($_POST['cities'])) {
die('Не выбран район или город.');
}
echo '<pre>';
echo 'Выбран список городов: ' . $_POST['cities'], '<br>';
// Склеиваем районы
// для выборки из БД.
$districts = array_map('intval', $_POST['districts']);
$districts = implode(',', $districts);
echo 'Выбран список районов: ' . $districts;
echo '</pre>';
NB Никогда не храните в скрытых полях пароли или другие конфиденциальные данные.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Столкнулся с проблемой при выборке данных MySql 56 основная часть данных храниться в одном коннекте и справочники хранятся в другом коннекте...
PHP html в разных файлахНужно по нажатию кнопки submit выполнить php