Yii实现复选框批量操作实例代码

5年以前  |  阅读数:785 次  |  编程语言:PHP 

整理文档,搜刮出一个Yii实现复选框批量操作实例代码,稍微整理精简一下做下分享。

在视图下


    <?php $this->widget('zii.widgets.grid.CGridView', array(
     'id'=>'user-grid',
     'dataProvider'=>$model->search(),//Model里需要有个search()方法,$model是Controller中传递的Model对象
    // /'filter'=>$model,
     'columns'=>array(
        array(
          'selectableRows' => 2,
          'class' => 'CCheckBoxColumn',
          'headerHtmlOptions' => array('width'=>'18px','align'=>'center'),
          'checkBoxHtmlOptions' => array('name' => 'ids[]','align'=>'center'),
        ),
    'homework_numberID',
    'type',
    'target',
    'state',

    'author_id',
        array('name'=>'state','type'=>'raw','value'=>'($data->state =="not_read" ?"未读":"已审核")'),
        // array('name'=>'passRecord','type'=>'date'),
        array('name'=>'submit_time','type'=>'date'),
     array(
       'class'=>'CButtonColumn',
     ),
     ),
    )); ?>

    <select name="status" id="status">
      <option value="1">通过</option>
      <option value="0">不通过</option>
    </select>
    <button type="button" onclick="setStatus();" style="width:120px;">设置状态</button>
    <script type="text/javascript">
      function getData(){
        var data=new Array();
        $("input:checkbox[name='ids[]']").each(function (){
          if($(this).attr("checked")){
            data.push($(this).val());
          }
        });

        return data;
      }
      function setStatus(){
        var data = getData();
        if(data.length < 1) {
          alert('请至少选择一个项目。');
          return ;
        }
     //这里是传递的url post方法
        $.post("index.php?r=user/status",{'ids[]':data,'status':$('#status').val()}, function (data) {
          if (data=='ok') {
            alert('设置状态成功!');
          }else{
            alert('设置状态失败,请重试!');
          }
          window.open('index.php?r=user/admin','mainFrame');;
        });
      }
    </script>

在Model中的search()函数


    public function search() 
      { 
        // @todo Please modify the following code to remove attributes that should not be searched. 

        $criteria=new CDbCriteria; 

        //$criteria->with = array('author'); //添加了和 author 的渴求式加载 
        // $this->state = "not_passed";
        $criteria->compare('state',$this->state); 


        //这里添加了一个 compare, username 是 User 表的字段,$this->name 是我们添加的属性,true 为模糊搜索 
        //$criteria->compare('username',$this->name,true); 

        return new CActiveDataProvider($this, array( 
         'criteria'=>$criteria, 
        )); 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例