[英]yii pagination with searching not working
我正在用搜索項在列表頁面中實現分頁(yii1):當我搜索某項時,分頁總計項5(我的意思是像1 2 3 4 5這樣的鏈接)並且搜索很好。
當我單擊分頁鏈接的第二頁時,項目總數增加到12(我的意思是鏈接,例如1 2 3 4 5 ... 10 11 12)。
我的查詢與類似運算符正常工作。 我不知道它在哪里改變。
這是在我的控制器中
if((isset($_POST['searchtext'])) && (!empty($_POST['searchtext']))){
$sql ="select * from table1 where name LIKE '\'%'.$_POST['searchtext'].'%\'" ;
$sql_count = "select count(*) from table1 LIKE '\'%'.$_POST['searchtext'].'%\'" ;
$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}else{
$sql = "select * from table1";
$sql_count = "select * from table1";
$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}
$dataProvider=new CSqlDataProvider($sql, array(
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array(
'id','userid','user_email',
),
),
'pagination'=>array(
'pageSize'=>9,
),
));
$this->render('listallview',array(
'dataProvider'=>$dataProvider,
));
我的看法
<ul class="list ">
<?php
$this->widget('bootstrap.widgets.TbListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
));
?>
</ul>
可能是什么問題呢?
如果要使用分頁功能,則必須將totalItemCount屬性配置為總行 數 (無分頁)。
嘗試在您的控制器中:
if((isset($_POST['searchtext'])) && (!empty($_POST['searchtext']))){
$sql ="select * from table1 where name LIKE '\'%'.$_POST['searchtext'].'%\'" ;
//$sql_count = "select count(*) from table1 LIKE '\'%'.$_POST['searchtext'].'%\'" ;
//$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}else{
$sql = "select * from table1";
//$sql_count = "select * from table1";
//$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM table1')->queryScalar();
$dataProvider=new CSqlDataProvider($sql, array(
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array(
'id','userid','user_email',
),
),
'pagination'=>array(
'pageSize'=>9,
),
));
$this->render('listallview',array(
'dataProvider'=>$dataProvider,
));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.