本文实例讲述了Yii中CGridView实现批量删除的方法。分享给大家供大家参考,具体如下:
1. CGridView中的columns添加
array( \'selectableRows\' => 2, \'footer\' => \'<button type=\"button\" onclick=\"GetCheckbox();\" style=\"width:76px\">批量删除</button>\', \'class\' => \'CCheckBoxColumn\', \'headerHtmlOptions\' => array(\'width\'=>\'33px\'), \'checkBoxHtmlOptions\' => array(\'name\' => \'selectdel[]\'), ),
作用是添加多选框
2.js代码
<script type=\"text/javascript\">
/*<![CDATA[*/
var GetCheckbox = function (){
var data=new Array();
$(\"input:checkbox[name=\'selectdel[]\']\").each(function (){
if($(this).attr(\"checked\")==true){
data.push($(this).val());
}
});
if(data.length > 0){
$.post(\'<?php echo CHtml::normalizeUrl(array(\'/admin/words/delall/\'));?>\',{\'selectdel[]\':data}, function (data) {
var ret = $.parseJSON(data);
if (ret != null && ret.success != null && ret.success) {
$.fn.yiiGridView.update(\'yw1\');
}
});
}else{
alert(\"请选择要删除的关键字!\");
}
}
/*]]>*/
</script>
3.Action
public function actionDelall()
{
if (Yii::app()->request->isPostRequest)
{
$criteria= new CDbCriteria;
$criteria->addInCondition(\'id\', $_POST[\'selectdel\']);
Words::model()->deleteAll($criteria);//Words换成你的模型
if(isset(Yii::app()->request->isAjaxRequest)) {
echo CJSON::encode(array(\'success\' => true));
} else {
$this->redirect(isset($_POST[\'returnUrl\']) ? $_POST[\'returnUrl\'] : array(\'index\'));
}
}
else
throw new CHttpException(400,\'Invalid request. Please do not repeat this request again.\');
}
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
本文地址:https://www.stayed.cn/item/21268
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我