Php Paging无法处理表单提交

时间:2014-11-07 06:25:15

标签: php html pagination

我是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教程进行了分页。请帮我解决这个问题。

2 个答案:

答案 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  = '&nbsp;'; // we're on page one, don't print previous link
    $first = '&nbsp;'; // 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 = '&nbsp;'; // we're on the last page, don't print next link
    $last = '&nbsp;'; // 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='';
}

?>