создали веб-сайт, на котором отображаются заказы из базы данных. Я только показываю 10 заказов на страницу, поэтому я создал также разбивку на страницы. Чтобы получить заказы, вам нужно установить идентификатор, и я сделал все, чтобы скомпилировать идентификатор непосредственно в php файл. То, что я пытаюсь сделать сейчас, - это получить форму выбора, чтобы пользователь мог самостоятельно выбрать идентификатор.
Я создал форму выбора, где я показываю все идентификаторы в качестве параметров, и я могу выбрать идентификатор и получить заказы, но когда я нажимаю кнопку "Далее", все исчезает. Если я снова выберу идентификатор и обновлю страницу, тогда появятся все заказы на стр. 2. Кажется, что значения сброшены к умолчанию, но я хочу, чтобы они оставались неизменными каждый раз, когда вы нажимаете "Далее". Как я могу это решить? Очень благодарен за любую помощь!
В? Page = 1 это отображает идентификатор, когда я нажимаю "Далее" и вводим? Page = 2, он повторяет "нет идентификатора",
if(isset($hejsann[$Option])) {
echo $hejsann[$Option];
} else {
echo "no id selected";
}
Это выбранная форма, в которой я выбираю идентификатор
<form method="post">
<fieldset>
<select name="taskOption" required>
<option value="" disabled selected>Choose a group</option>
<?php
if (isset($_POST['taskOption'])) {
$Option = $_POST['taskOption'];
}
while($hej < count($hejsan)) {
if($hej==$_POST['taskOption']){
$selected = "selected=selected";
}else{
$selected = "";
}
echo '<option value="' . $hej . '" '.$selected .'>' . $hejsan[$hej] . '</option>';
$hej++;
}
?>
</select>
<input type="submit" value="Find bookings">
</fieldset>
</form>
Это разбиение на страницы
<?php
$var = $_POST['taskOption'];
$book = bookings($hejsann[$var]);
$page = (int) $_GET['page'];
if ($page < 1) $page = 1;
$resultsPerPage = 10;
$startResults = ($page - 1) * $resultsPerPage;
$numberOfRows = count($book);
$totalPages = ceil($numberOfRows / $resultsPerPage);
$output = array_slice($book, $startResults, $resultsPerPage);
$b = 0;
while($b < count($output)) {
echo $output[$b];
$b++;
}
if($page > 1) {
echo '<a href="?page='.($page - 1).'"><span>Back</span></a> ';
}
for($i = 1; $i <= $totalPages; $i++)
{
if($i == $page)
echo '<strong>'.$i.'</strong> ';
else
echo '<a href="?page='.$i.'"><span style="margin-left: 15px;">'.$i.'</span> </a> ';
}
if ($page < $totalPages) {
echo '<a href="?page='.($page + 1).'"><span style="margin-left: 15px;">Next</span></a> ';
}
if($page == $totalPages && $page > 1) {
echo '<a href="?page=1"><span style="margin-left: 15px;">First</span></a> ';
}
?>
Данные $_POST
не включаются автоматически в строку get при нажатии ссылки. Ссылки не могут содержать почтовые данные, поскольку они являются чистыми текстовыми строками. Чтобы передать другое значение по ссылке, вам нужно добавить его в строку GET URL-адреса. Используйте http_build_query для генерации строки get из массива, например:
echo $url.'?'.http_build_string($_POST);
Вывести URL-адрес с почтовыми данными, полученными на странице, добавленной в URL-адрес.