创建了一个显示数据库预订的网站。我每页只显示10个预订,所以我也创建了一个分页。要获得预订,你必须设置一个ID,如果我将ID直接编码到php文件中,我就能使一切正常。我现在要做的就是获取一个选择表单,这样用户就可以自己选择ID了。
我创建了一个选择表单,我将所有ID显示为选项,我可以选择一个ID并输出预订,但是当我按下“下一步”按钮时,一切都消失了。如果我现在再次选择ID并更新页面,则会显示第2页的所有预订。似乎值已重置为默认值,但我希望每次按“下一步”时它们保持不变。我怎么解决这个问题?非常感谢任何帮助!
在?page = 1中,这将显示ID,当我按下“Next”并输入?page = 2时,它回显“未选择ID”
if(isset($hejsann[$Option])) {
echo $hejsann[$Option];
} else {
echo "no id selected";
}
这是我选择ID
的选择表格<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> ';
}
?>
答案 0 :(得分:0)
$_POST
数据不会自动包含在get字符串中。链接不能包含帖子数据,因为它们是纯文本字符串。要通过链接传递另一个值,您需要将其添加到URL的GET字符串。使用http_build_query从数组生成get字符串,例如:
echo $url.'?'.http_build_string($_POST);
输出包含添加到网址的页面收到的帖子数据的网址。