时间:2021-07-01 10:21:17 帮助过:4人阅读
用yii 1实现后台的搜索功能,效果如下图:
1.模型中:
1 public function search() 2 { 3 4 $criteria = new CDbCriteria; 5 //独立高级搜索 6 if(isset( $_GET['goods']) ) { 7 //商品货号 8 if (isset($_GET['goods']['goods_sn']) && $_GET['goods']['goods_sn'] != "") 9 {10 $criteria->compare('goods_sn',$_GET['goods']['goods_sn'], true );11 }12 //商品名称13 if (isset($_GET['goods']['goods_name']) && $_GET['goods']['goods_name'] != "")14 {15 $criteria->compare('goods_name',$_GET['goods']['goods_name'], true);16 }17 //商品分类18 if (isset($_GET['goods']['cat_id']) && $_GET['goods']['cat_id'] != "")19 {20 $criteria->compare('cat_id',$_GET['goods']['cat_id'], true);21 }22 //是否上架23 if (isset($_GET['goods']['is_on_sale']) && $_GET['goods']['is_on_sale'] != "")24 {25 $criteria->compare('is_on_sale',$_GET['goods']['is_on_sale']);26 }27 //是否精品28 if (isset($_GET['goods']['is_best']) && $_GET['goods']['is_best'] != "")29 {30 $criteria->compare('is_best',$_GET['goods']['is_best']);31 }32 //是否新品33 if (isset($_GET['goods']['is_new']) && $_GET['goods']['is_new'] != "")34 {35 $criteria->compare('is_new',$_GET['goods']['is_new']);36 }37 //是否热销38 if (isset($_GET['goods']['is_hot']) && $_GET['goods']['is_hot'] != "")39 {40 $criteria->compare('is_hot',$_GET['goods']['is_hot']);41 }42 43 }44 return new CActiveDataProvider($this, array(45 'criteria'=>$criteria46 ));47 }
2.控制器中:
$model=new B2cGoods('search');
表示在model中启用模型中的search作为搜索。
3.视图中:
class="well"> class="search-box">
这里需要注意的一点是实现checkbox,保持原状态,echo $_GET['goods']['is_hot']?'checked="checked"':'' ?>,即用php判断是否有值。