yii dataprovider在帖子后分页

时间:2015-10-25 08:46:22

标签: php yii pagination

我有一个搜索表单。我想对结果进行分页。

$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分页吗?

1 个答案:

答案 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'
    )); ?>