您现在的位置是:网站首页> php专栏 扩展知识
php后台列表使用layui switch开关
亦然2019-09-28 13:56:17【扩展知识】人已围观
简介switch开关是后台必不可少的一个html组件。本文记录一下我常用的通过layui来实现状态切换的方法。
在后台开发中,经常用到的就是使用开关控制状态的改变,便于管理。效果如下:
示例代码如下:
1.后台列表页面引入layui资源文件,可以使用layui的cdn地址。
2.列表页面
列表新增一行,用来显示状态。
<td> <form class="layui-form" action=""> <input type="checkbox" {if condition="$vo.pay_status eq 1"} checked {/if} name="switch" lay-skin="switch" lay-filter="switchTest" data-url="{:url('news_log/field',array('ids'=>$vo.id))}" lay-text="已支付|未支付"> </form> </td>
js渲染switch开关,并处理响应事件。
<script> layui.use(['form'], function(){ var form = layui.form ,layer = layui.layer //监听指定开关 form.on('switch(switchTest)', function(data){ var url = $(this).data('url'); var status = data.elem.checked;//开关是否开启,true或者false //后台我需要的是0或1,所以预先在js中处理change的值 if(status) { status = 1; } else { status = 0; } $.post(url, {status: status}, function(res) { if(res.code) { layer.msg(res.msg); } }); }); }); </script>
js
3.控制器中处理事件,并返回处理结果。public function field() { if ($this->request->isPost()) { $data['id'] = $this->request->param('ids'); $data['status'] = $this->request->param('status'); //更新数据 $result = Db::name('news_log')->where('id',$data['id'])->update(array('pay_status'=>$data['status'])); if ($result) { $msg = '状态设置成功'; return json(['code'=>1,'msg'=>$msg]); }else{ $res['code'] = 0; $res['msg'] = '这是个意外!'; return $res; } } }
补充:swith也可以增加一个询问框,当用户点击更改状态时,会让用户确认是否更改。效果如下:
实现代码如下:
layui.use(['form', 'jquery', 'layer'], function () { var form = layui.form; var jquery = layui.jquery; var layer = layui.layer; //监听开关事件 form.on('switch(switchTest)', function (data) { var url = $(this).data('url'); var contexts; var x = data.elem.checked;//判断开关状态 if (x==true) { contexts = "你确定要启动么"; status = 1; } else { contexts = "你确定要关闭么"; status = 0; } layer.open({ content: contexts , btn: ['确定', '取消'] , yes: function (index, layero) { $.post(url, {status: status}, function(res) { if(res.code) { layer.msg(res.msg); } }); //按钮【按钮一】的回调 } , btn2: function (index, layero) { //按钮【按钮二】的回调 $.post(url, {status: status}, function(res) { if(res.code) { layer.msg(res.msg); } }); //return false 开启该代码可禁止点击该按钮关闭 } , cancel: function () { //右上角关闭回调 data.elem.checked = !x; form.render(); //return false 开启该代码可禁止点击该按钮关闭 } }); return false; }); });
很赞哦!()
上一篇:跨站脚本:反射型XSS
下一篇:博客网页上添加live2D看板娘