首页 > 学院 > 开发设计 > 正文

Yii1开发日记--搜索功能及Checkbox的实现

2019-11-14 14:39:51
字体:
来源:转载
供稿:网友

用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.视图中:

<div class="well">    <div class="search-box">        <form class="form-inline" method="get" action="">
       //指定form表单提交的页面,很重要 <input type='hidden' name='r' value='B2CShop/b2cGoods/goodsList/id/<?php echo $id ?>'> <div class="form-group"> <input name="goods[goods_sn]" type="text" class="form-control" style="width:140px;" placeholder = "商品货号" value=<?php echo $_GET['goods']['goods_sn'] ; ?> > </div>&nbsp; <div class="form-group"> <input name="goods[goods_name]" type="text" class="form-control" style="width:140px;" placeholder = "商品名称"   value=<?php echo $_GET['goods']['goods_name'] ; ?> > </div>&nbsp;&nbsp; <div class="form-group"> <?php echo CHtml::dropDownList( "goods[cat_id]" , $_GET['goods']['cat_id'] , B2cCategory::listData( $id ) , array( "class"=>"form-control" , 'empty'=>'请选择类型...', 'encode' => false, "style"=>"width:140px") ); ?> </div>&nbsp;&nbsp; <div class="checkbox"> <label style="font-size: 16px">上架 <input type="checkbox" name="goods[is_on_sale]" style="width: 24px;" value="1"
                //实现checkbox,刷新页面保持原状态 <?php echo $_GET['goods']['is_on_sale']?'checked="checked"':'' ?> > </label> </div>&nbsp;&nbsp; <div class="checkbox"> <label style="font-size: 16px">精品 <input type="checkbox" name="goods[is_best]" style="width: 24px;" value="1" <?php echo $_GET['goods']['is_best']?'checked="checked"':'' ?> > </label> </div>&nbsp;&nbsp; <div class="checkbox"> <label style="font-size: 16px">新品 <input type="checkbox" name="goods[is_new]" style="width: 24px;" value="1" <?php echo $_GET['goods']['is_new']?'checked="checked"':'' ?> > </label> </div>&nbsp;&nbsp; <div class="checkbox"> <label style="font-size: 16px">热销 <input type="checkbox" name="goods[is_hot]" style="width: 24px;" value="1" <?php echo $_GET['goods']['is_hot']?'checked="checked"':'' ?> > </label> </div> <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span>&nbsp;搜&nbsp;索</button> </form> </div></div>

这里需要注意的一点是实现checkbox,保持原状态,<?php echo $_GET['goods']['is_hot']?'checked="checked"':'' ?>,即用php判断是否有值。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表