查看: 420|回复: 0

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

发表于 2018-2-6 08:00:01

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

在视图下

  1. <?php $this->widget('zii.widgets.grid.CGridView', array(
  2. 'id'=>'user-grid',
  3. 'dataProvider'=>$model->search(),//Model里需要有个search()方法,$model是Controller中传递的Model对象
  4. // /'filter'=>$model,
  5. 'columns'=>array(
  6. array(
  7. 'selectableRows' => 2,
  8. 'class' => 'CCheckBoxColumn',
  9. 'headerHtmlOptions' => array('width'=>'18px','align'=>'center'),
  10. 'checkBoxHtmlOptions' => array('name' => 'ids[]','align'=>'center'),
  11. ),
  12. 'homework_numberID',
  13. 'type',
  14. 'target',
  15. 'state',
  16. 'author_id',
  17. array('name'=>'state','type'=>'raw','value'=>'($data->state =="not_read" ?"未读":"已审核")'),
  18. // array('name'=>'passRecord','type'=>'date'),
  19. array('name'=>'submit_time','type'=>'date'),
  20. array(
  21. 'class'=>'CButtonColumn',
  22. ),
  23. ),
  24. )); ?>
复制代码
  1. <select name="status" id="status">
  2. <option value="1">通过</option>
  3. <option value="0">不通过</option>
  4. </select>
  5. <button type="button" onclick="setStatus();" style="width:120px;">设置状态</button>
  6. <script type="text/javascript">
  7. function getData(){
  8. var data=new Array();
  9. $("input:checkbox[name='ids[]']").each(function (){
  10. if($(this).attr("checked")){
  11. data.push($(this).val());
  12. }
  13. });
  14. return data;
  15. }
  16. function setStatus(){
  17. var data = getData();
  18. if(data.length < 1) {
  19. alert('请至少选择一个项目。');
  20. return ;
  21. }
  22. //这里是传递的url post方法
  23. $.post("index.php?r=user/status",{'ids[]':data,'status':$('#status').val()}, function (data) {
  24. if (data=='ok') {
  25. alert('设置状态成功!');
  26. }else{
  27. alert('设置状态失败,请重试!');
  28. }
  29. window.open('index.php?r=user/admin','mainFrame');;
  30. });
  31. }
  32. </script>
复制代码

在Model中的search()函数

  1. public function search()
  2. {
  3. // @todo Please modify the following code to remove attributes that should not be searched.
  4. $criteria=new CDbCriteria;
  5. //$criteria->with = array('author'); //添加了和 author 的渴求式加载
  6. // $this->state = "not_passed";
  7. $criteria->compare('state',$this->state);
  8. //这里添加了一个 compare, username 是 User 表的字段,$this->name 是我们添加的属性,true 为模糊搜索
  9. //$criteria->compare('username',$this->name,true);
  10. return new CActiveDataProvider($this, array(
  11. 'criteria'=>$criteria,
  12. ));
复制代码

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

您可能感兴趣的文章:

  • 解析yii数据库的增删查改
  • Yii操作数据库的3种方法
  • Yii实现MySQL多数据库和读写分离实例分析
  • Yii2.0高级框架数据库增删改查的一些操作
  • Yii中CGridView实现批量删除的方法
  • Yii实现单用户博客系统文章详情页插入评论表单的方法
  • 浅析Yii2 gridview实现批量删除教程
  • Yii2如何批量添加数据
  • JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
  • yii2使用GridView实现数据全选及批量删除按钮示例
  • Yii2 批量插入、更新数据实例
  • YII框架批量插入数据的方法


回复

使用道具 举报