使用分页链接时保持数组从POST

时间:2013-08-13 13:03:12

标签: php post if-statement pagination

我的搜索引发了一个问题。 它输出的搜索结果很好,但是当我点击分页链接时它失败了,当然因为它不再有$_POST数组。我正在使用这段代码:

if(empty($_POST) == false) {

    $res = $search->search_ads($_POST);

    if($res == false) {
       $view->setData('numres', 0);
    } else {
        $view->setData('numres',$res[2]);
        $view->setData('adverts', $res[0]);
   }

   $app->view()->setData('paginate', $res[1]);
   $app->render('search.tpl');
} else {
   $app->render('404.tpl');
}

当我点击f.x. “第2页”它将呈现404模板。

有没有办法保留$_POST数组并在search_ads函数中重复使用?

“paginate”包含分页的HTML

<li><a class=\"paginate\" href=\"$target?page=$next_page&ipp=$this->items_per_page\">«</a></li>":"<li><span class=\"inactive\" href=\"#\">«</span></li>

3 个答案:

答案 0 :(得分:2)

使用会话。

session_start(); //on the top of your php file.
...

if(!empty($_POST))
   $_SESSION['post_data']= $_POST;
...

if(empty($_SESSION['post_data']) == false) {
$res = $search->search_ads($_SESSION['post_data']);
...

}

答案 1 :(得分:0)

将post数组存储在变量中并在其他地方使用?

$post_array = $_POST;
$res = $search->search_ads($post_array);

答案 2 :(得分:0)

您希望在后续页面上检查 $ _ GET 而不是$ _POST,因为这是您用来传递数据的方法:

href=\"$target?page=$next_page&ipp=$this->items_per_page\"

将为您提供包含键值对的$ _GET数组:

$_GET['page'] = value of $next_page 
$_GET['ipp']  = value of $this->items_per_page