我是php的新手,在这里我有一个带有2个下拉框和一个提交按钮的表单。这些盒子的价值来自我的数据库。 我的HTML代码是
<form method = "post" id = "myform" >
<select name='country'>
<option value="all" <?php if($item == 'all'): echo "selected='selected'"; endif; ?> >--Select--</option>
<option value="India" <?php if($item == 'india'): echo "selected='selected'"; endif; ?> >India</option>
<option value="USA" <?php if($item == 'USA'): echo "selected='selected'"; endif; ?> >USA/option>
</select>
<select name='code'>
<option value="all" <?php if($item == 'all'): echo "selected='selected'"; endif; ?> >--Select--</option>
<option value="12" <?php if($item == '12'): echo "selected='selected'"; endif; ?> >12</option>
<option value="345" <?php if($item == '345'): echo "selected='selected'"; endif; ?> >345</option>
</select>
<input type = "submit" name = "submit" value = "submit" >
使用提交按钮,我从我的数据库中提取记录。它的工作正常。我想在这种形式中添加分页,我尝试了类似
的内容 <?php
if (isset($_REQUEST['country']) )
{
// code......
//paging query**
for ($i=1; $i<=$total_pages; $i++)
{
echo "<td><a href='test.php?page=".$i."&country=$country&code=$code'>".$i."</a><td> ";
};
}
?>
如果我尝试以上操作,则显示第一页的值,但第二页为空。而且我还希望在整个分页过程中保持选择的下拉值。我浏览谷歌但无法找到它。我按照this教程进行了分页。请帮我解决这个问题。
答案 0 :(得分:0)
您还必须通过该过滤条件抛出分页链接。
为此,您应该将表单方法更改为POST。
在您的分页代码中,将该过滤器值添加到与表单中给出的名称相同的链接。
被修改的
将您的表单方法更改为GET
答案 1 :(得分:0)
首先将表格更改为methot,这是一个完整的分页脚本。
请注意,$ npr是一个变量,您可以在其中存储必须从db获得的总记录数。
<?php
$npr = $total_records; //which should be get from db using count query
$rowsPerPage = 15; //total number of records you want to display on page
// -------how many pages we have when using paging?-------
$maxPage = ceil($npr/$rowsPerPage);
$get_var = $_GET;
if(isset($get_var['page']))
unset($get_var['page']);
$get_param = http_build_query($get_var);
// -------print the link to access each page-------
$self = $_SERVER['PHP_SELF'];
$nav = '';
if ($pageNum - 2 < 1) {
$pagemin = 1;
$sg=1;
} else {
$sg=0;
$pagemin = $pageNum - 2;
}
if ($pageNum + 2 > $maxPage) {
$pagemax = $maxPage;
$qg=1;
} else {
$qg=0;
$pagemax = $pageNum + 2;
}
for($page = $pagemin; $page <= $pagemax; $page++)
{
if ($page == $pageNum)
{
$nav .= "<li><a style='color:#000;'> $page </a></li>"; // no need to create a link to current page
}
else
{
$nav .= "<li><a href=\"$self?page=$page&$get_param\">$page</a></li>";
}
}
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = "<a href=\"$self?page=$page&$get_param\">[Prev]</a>";
$first = "<a href=\"$self?page=1&$get_param\">[First Page]</a> ";
}
else
{
$prev = ' '; // we're on page one, don't print previous link
$first = ' '; // nor the first page link
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page&$get_param\">[Next]</a>";
$last = "<a href=\"$self?page=$maxPage&$get_param\">[Last Page]</a> ";
}
else
{
$next = ' '; // we're on the last page, don't print next link
$last = ' '; // nor the last page link
}
// print the navigation link
if(($sg==1)&&($qg==1))
{
//$pag = '<li>'.$first .'</li><li>'. $prev.'</li>'.$nav.'<li>'.$next .'</li> <li>'. $last.'</li>';
$pag = '<li>'.$first .'</li><li>'. $prev.'</li>'.$nav.'<li>'.$next .'</li> <li>'. $last.'</li>';
}
else
{ if(($sg==1)&&($qg==0))
{
$pag = $nav.'<li>'.$next .'</li> <li>'. $last.'</li>';
}else
{if(($sg==0)&&($qg==0))
{$pag ='<li>'.$first .'</li><li>'. $prev.'</li>'.$nav.'<li>'.$next .'</li> <li>'. $last.'</li>';
}
else{
if(($sg==0)&&($qg==1))
{
$pag = '<li>'.$first .'</li><li>'. $prev.'</li>'.$nav.'<li>'.$next .'</li> <li>'. $last.'</li>';
}
}
}
}
if($rowsPerPage>=$npr){
$pag='';
}
?>