0

我的搜索引擎有一点问题。它可以很好地输出搜索结果,但是当我单击分页链接时它会失败,当然是因为它不再具有$_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');
}

当我单击 fx“Page 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>
4

3 回答 3

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']);
...

}
于 2013-08-13T13:08:12.040 回答
0

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

$post_array = $_POST;
$res = $search->search_ads($post_array);
于 2013-08-13T13:06:23.427 回答
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
于 2013-08-13T13:09:49.940 回答