实现效果:
<td class="td-status">
<input type="checkbox" <?php if ($vo['status'] ==1): ?> checked="" <?php endif; ?> name="status[]" lay-skin="switch" lay-filter="switchTest" lay-text="开启|关闭" value="<?= $vo['status'] ?>_<?= $vo['id'] ?>"
</td>
js部分:引入jquery和layui.js
layui.use(['layer','form'], function () {
var $ = layui.jquery
, upload = layui.upload
, form = layui.form
, layer = layui.layer;
form.on('switch(switchTest)', function(data){
var status_id = data.value;
var csrfToken = "<?= Yii::$app->request->csrfToken ?>";
$.ajax({
url: "/admin/category/ajaxstatus",
type: "post",
dataType: "JSON",
data: {status_id: status_id, _csrf_admin: csrfToken},
success: function (data) {
if (data.success == true) {
layer.msg(data.msg);
location.reload();
return false;
} else {
layer.msg(data.msg);
setTimeout(function () {
location.reload();
}, 1000);
return false;
}
}
});
});
});
php后台部分:
/**
* 更改状态
*/
public function actionAjaxstatus(){
$result = ['success' => false];
$status_id = Yii::$app->request->post('status_id');
$arr = explode('_',$status_id);
if($arr[0] == 0){
$status = 1;
}else{
$status = 0;
}
$id = $arr[1];
$model = new Category();
$is_exists = $model->One(['pid'=>$id]);
if($is_exists && $status==0){
$result['msg'] = '请先关闭子级下的状态,再进行此操作!';
return json_encode($result);
}
$attr = [
'id' => $id,
'status' =>$status
];
$return = $model->Update($attr);
if ($return['success'] == true) {
$result['success'] = true;
$result['msg'] = '更新成功';
} else {
$result['msg'] = '更新失败';
}
return json_encode($result);
}