PHP分页,按下下一步时值将重置为默认值

时间:2014-04-29 09:45:17

标签: javascript php jquery session pagination

创建了一个显示数据库预订的网站。我每页只显示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>&nbsp';
}

for($i = 1; $i <= $totalPages; $i++)
{
if($i == $page)
    echo '<strong>'.$i.'</strong>&nbsp';
else
    echo '<a href="?page='.$i.'"><span style="margin-left: 15px;">'.$i.'</span>    </a>&nbsp';
}

if ($page < $totalPages) {
echo '<a href="?page='.($page + 1).'"><span style="margin-left: 15px;">Next</span></a>&nbsp;';
}

if($page == $totalPages && $page > 1) {
echo '<a href="?page=1"><span style="margin-left: 15px;">First</span></a>&nbsp';
}
?>

1 个答案:

答案 0 :(得分:0)

单击链接时,

$_POST数据不会自动包含在get字符串中。链接不能包含帖子数据,因为它们是纯文本字符串。要通过链接传递另一个值,您需要将其添加到URL的GET字符串。使用http_build_query从数组生成get字符串,例如:

echo $url.'?'.http_build_string($_POST);

输出包含添加到网址的页面收到的帖子数据的网址。