1
我在我的搜索結果上實施分頁,在它的第一頁工作正常,但問題是當我點擊第2頁的第二頁結果時,它顯示空白頁面。分頁與搜索表單不工作
鑑於我有:
$this->widget('zii.widgets.CListView', array('dataProvider'=>$dataProvider,
'itemView'=>'_listing'));
,而在我的控制,我有:
if (isset($_POST)
{
(......)
$dataProvider=new CArrayDataProvider($results,array(
'keyField' => 'brand_id',
'pagination'=>array(
'pageSize'=>5,
)));
//echo "<pre>"; print_r($dataProvider);exit;
$this->render('listing',array('dataProvider'=>$dataProvider, 'post' => $_POST));
}
的$results
包含我的搜索結果中,控制器具有一個檢查,如果崗位設置與否,所以當第二頁加載請求發送到列表動作,發佈數據未設置,因此它不輸入代碼並且什麼也不顯示。
如何在第二頁調用完成後使發佈數據可用?
爲什麼要使用CArrayDataProvider?你可以展示搜索實施,我敢打賭有更好的方法來做到這一點。此外,還使用搜索來顯示數據,而不是更改數據庫中的數據,因此請使用GET而不是POST - 它是一種適當且用戶友好的方式 - 用戶可以將搜索網址發送給其他人以顯示他擁有的相同結果找到。 – ddinchev
我已經使用CArrayDataProvider,因爲我已經在數組變量$ results中獲取了我的控制器中的搜索數據,我只需要$結果通過分頁顯示,並且我說我正在更改數據庫中的數據? 如果我有幾個變量說10或說11,你stil建議使用GET?是啊它的用戶友好的方式,但那不是我所關心的事情.. 問題是如何使數據可用第二次調用分頁? –
我從來沒有說過你正在改變數據 - 這正是你應該使用GET的原因。即使你有30個變量,我也會建議GET進行搜索。無論如何,無論您使用POST還是GET,您爲什麼不使用CActiveDataProvider? http://www.yiiframework.com/doc/api/1.1/CActiveDataProvider「已經有了」 - 如果您使用CActiveDataProvider,您已經獲得它,如果您需要,可以使用' - > getData()'方法獲取數據它在旁邊的分頁。 CArrayDataProvider僅適用於外部API數據等情況。 – ddinchev