我有一个搜索表单。我想对结果进行分页。
$criteria
这样的事情:
if($_POST["tipus"] != 4){
$criteria->compare('t.tipus',$_POST["tipus"],true);
}
if($_POST["varos"] != 0){
$criteria->compare('`apartman`.`city`', $_POST["varos"], true);
}
if($_POST["ferohely"] != 0){
$criteria->compare('t.ferohely', $_POST["ferohely"], true);
}
我的数据提供者:
$dataProvider= new CActiveDataProvider('UserAndApartman', array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'t.id DESC',
),
'pagination'=>array(
'pageSize'=>2,
),
));}
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'kereses_eredmenyek_view',
));
因此,如果我点击第二页,帖子就不会再来了。如何自动发布?我可以获得$dataprovider
分页吗?
答案 0 :(得分:1)
你正在使用$ _POST,$ _POST [' tipus']和其他数据丢失时 您导航到下一页,因为您没有将其发布到 第2,3页等。你可以做两件事:
将$ _POST [' tipus']存储在会话中,以便下一页“知道”'什么年份必须使用。 将其作为$ _GET参数存储在网址中,因此请使用$ _GET [' tipus']代替$ _POST [' tipus']。当您导航到第2页时,$ _GET [' tipus']在下一页的网址中可用。 最后一个是我认为最容易的,这就是我通常使用它的方式。 如果您使用get方法,请将CActiveForm行更改为:
<?php $this->beginWidget('CActiveForm', array(
'id'=>'fromid',
'method' => 'get'
)); ?>