我的搜索引发了一个问题。
它输出的搜索结果很好,但是当我点击分页链接时它失败了,当然因为它不再有$_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>
答案 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