如何在Yii中將搜索結果過濾爲複選框和下拉菜單的組合?我有一些類別作爲複選框和預算作爲下拉列表從數據庫中列出。檢查多個複選框並從下拉列表中選擇一個值,我如何過濾搜索結果..有沒有更好的方法? (我的要求就像這個鏈接http://www.ebay.in/sch/i.html?_from=R40&_sacat=0&_nkw=pendrives&rt=nc&LH_FS=1)在yii中搜索和過濾
0
A
回答
1
我建議使用搜索模式。這可能是這樣的:
class SearchProducts extends CFormModel
{
public $minPrice;
public $maxPrice;
public $categories;
// Add a public property for each search form element here
public function rules()
{
return array(
// You should validate your search parameters here
array('minPrice,maxPrice,categories', 'safe'),
);
}
public function search()
{
$criteria = new CDbCriteria;
if(!empty($this->minPrice))
$criteria->addCondition('price > '.(int)$this->minPrice);
if(!empty($this->maxPrice))
$criteria->addCondition('price < '.(int)$this->maxPrice);
if(!empty($this->categories))
$criteria->addInCondition('category_id', $this->categories);
// Add more conditions for each property here
return new CActiveDataProvider('Product', array(
'criteria' => $criteria,
// more options here, e.g. sorting, pagination, ...
));
}
}
在你的控制器創建搜索表單的一個新實例,並指定搜索變量和往常一樣:
public function actionProducts()
{
$searchModel = new ProductSearch();
if(isset($_POST['ProductSearch']))
$searchModel->attributes = $_POST['ProductSearch'];
$this->render('products', array(
'searchModel' => $searchModel,
));
}
最後,在你看來,你現在可以渲染
$searchModel
屬性的常規Yii表格將成爲您的搜索過濾器形式- A
CListView
或CGridView
,您將provider
設置爲$searchModel->search()
,這將是您的搜索結果。
對於複選框你使用的CheckBoxList:
<?php $this->formCheckBoxList($model, 'categories[]', Category::opts()) ?>
注意[]
這表明,這應該是張貼陣列。爲了方便起見,我通常還在某些模型中實現了靜態opts()
方法,該方法返回可用於dropDownList或checkBoxList選項的id=>name
的列表。
這只是基本模式。您可以輕鬆擴展它以創建真正強大的搜索表單和結果列表。請始終記住,您應該將所有搜索相關數據保留在另一個模型中。
0
試試這個擴展:ddautofilter https://bitbucket.org/jwerner/yii-ddautofilter/overview
相關問題
- 1. Yii的搜索過濾器不工作
- 2. Yii CActiveRecord「搜索」和搜索()
- 3. 在jtable netbeans中過濾和搜索
- 4. 在javascript中搜索/過濾
- 5. Android。搜索和過濾RecyclerView
- 6. 在Django中,通過搜索框和類別一次搜索和過濾?
- 7. yii'通過'關係搜索
- 8. 保存和檢索搜索過濾器
- 9. 過濾器搜索在Android
- 10. angularjs過濾搜索
- 11. 過濾搜索onkeyup
- 12. Pysolr過濾搜索
- 13. 搜索/過濾UITableView
- 14. Silverstripe過濾搜索
- 15. 過濾搜索-ADAccount
- 16. 在YII中的CGridView中創建自定義高級搜索過濾器
- 17. 護欄下拉搜索/過濾搜索
- 18. 在彈性搜索中過濾?
- 19. 在DataGrid中搜索(過濾器)VB.Net
- 20. 在搜索過濾器中使用DN
- 21. 過濾器在NHibernate的列中搜索
- 22. 在QTreeview Pyside中搜索過濾器
- 23. 在linq搜索中過濾空值
- 24. 如何在AngularJS中預過濾搜索
- 25. 在Solrping中過濾搜索結果
- 26. 從xml在php中搜索過濾器
- 27. Angularjs過濾器在文本中搜索
- 28. 搜索欄 - 在swift中過濾數值
- 29. 在Android中實現搜索過濾器
- 30. 在android中的過濾器搜索listView
如何能將它的複選框來完成? – anu
查看更新的答案。 –
我需要在列表視圖中點擊類別動態更新。如何實現這個? – anu