tp5和layui表单提交多选复选框checkbox及输入框
未知
2024-04-09 14:45:31
0
<form class="layui-form layui-form-pane" >
<div class="layui-form-item">
   <label class="layui-form-label" >组名称</label>
   <div class="layui-input-block">
       <input type="text" name="typename" lay-verify="required" class="layui-input" >
   </div>
</div>
<div class="layui-form-item">
    <div class="layui-input-block">
        <input type="checkbox" name="purview[]" lay-skin="primary" title="管理员页面" value="admin/index" {php} if(in_array('admin/index',$str_arr))echo 'checked'; {/php}>
        <input type="checkbox" name="purview[]" lay-skin="primary" title="添加管理员页面" value="admin/adduser" {php} if(in_array('admin/adduser',$str_arr))echo 'checked'; {/php}>
        <input type="checkbox" name="purview[]" lay-skin="primary" title="执行添加管理员" value="admin/insertuser" {php} if(in_array('admin/insertuser',$str_arr))echo 'checked'; {/php}>
    </div>
</div>
</form>
第一条办法:
<script type="text/javascript">
        layui.use(['form'],function(){
            var form=layui.form;
            //监听提交事件
            form.on('submit(myform)',function(obj){
                var purview = [];
                $('input[type=checkbox]:checked').each(function() {
                    purview.push($(this).val());
                });                
                typename=obj.field.typename;
                var json = {'purview':purview,'typename':typename};
                fields=JSON.stringify(json);

         
                $.ajax({
                    url:"__MODULE__/admintype/insert",
                    type:"post",
                    data:{'val':fields},
                    beforeSend:function(){
                        loading=layer.load(1,{shade:[0.4,'#000']})
                    },success:function(data){           
                        layer.close(loading);
                        if(data.code==1000){
                            layer.msg(data.msg,{icon:1})
                            location.href="__URL__/index";
                        }else{
                            layer.msg(data.msg,{icon:2});
                        }
                    }
                })
                return false;
            })
        })
    </script>
第二各办法:
layui.use(['form'],function(){
            var form=layui.form;
       
            form.on('submit(myform)',function(obj){
                    //获取checkbox数据
                quotation = new Array();//设置空数组
                $("input:checkbox[name='purview']:checked").each(function(){

                    //数组中追加元素
                   quotation.push($(this).val());
                });

                 //设置空json
                var jsonDe = {};
                for (var i = 0; i < quotation.length; i++) {
                   jsonDe[i] = quotation[i];
                }
                //把json对象转换成字符串
                let myJson = JSON.stringify(jsonDe);
                //给obj.field赋值,以便传入后台。注意赋值idmail和html中多选的name=‘
purview’。purview键和下方的idemail键会一同传入后台数组。idemail字段在数据库中,purview只是临时用作传值,后台需要删除unset()这个键,否则数据库没有这个字段提示错误。
                obj.field.
idemail = myJson ;
                fields=JSON.stringify(obj.field);
           
                $.ajax({
                    url:"__URL__/insertMember",
                    type:"post",
                    data:{val:fields},
                    beforeSend:function(){
                        loading=layer.load(1,{shade:[0.3,'#000']});
                    },success:function(data){
                        console.log(data);
                        // return false;
                        layer.close(loading);
                        if(data.code==1000){
                            layer.msg(data.msg,{icon:1});
                            location.href="__URL__/index";
                        }else{
                            layer.msg(data.msg,{icon:2});
                        }

                    }

                })
                return false;

            });
           
        })
后台处理:
        if(request()->isPost()){
            $request_m=json_decode(htmlspecialchars_decode(input('val')),true);           
       
            $request_m['idemail']=implode(',',json_decode($request_m['idemail'],true));
           
            unset($request_m['purview']);   
            //执行db即可
         }


相关内容

MySQL视图与普通表的区...
MySQL视图与普通表:虚拟与实际的存储方式,视图只可查询不可修改...
2026-01-30 01:23:36
学习和实践:MySQL视图...
本文分享了MySQL视图的定义、作用和实战案例,包括简化复杂查询、...
2026-01-28 01:23:47
MySQL视图在数据库设计...
MySQL视图是虚拟的表,通过定义SQL查询结果呈现。在数据库设计...
2026-01-24 01:23:42
如何配置和优化PHP AP...
本文介绍了如何配置和优化PHP APC(Alternative P...
2026-01-17 01:23:45
普京称俄已掌握新型武器
普京称俄已研发新型武器,标志着军事技术新里程碑。此举展示俄军事实力...
2025-10-16 01:23:36
甲骨文埃里森超越马斯克成全...
埃里森超越马斯克成全球首富,凭借专业知识和领导力,甲骨文公司成功助...
2025-09-17 01:23:42

热门资讯

downloadable fo... downloadable font: Glyph bbox was incorrect怎么处理
腾讯邮箱qq邮箱使用SMTP开... 第一步:登录 https://mail.qq.com/ 登录后点击设置---账号 第二步:点击【开启...
layui tooltip提示... 在layui表单中,我们想把一个标签做出提示,以标明这个表单元素是做什么有什么功能时,就可以用上提...
layui中出错Unexpec... layui中出错Unexpected identifier
解决Phpcms V9手机门户... 第一步:开启手机网站。位置:模块 》手机门户 》 添加手机站点,如果模块里面没有手机门户,那么就在模...
JavaScript获取当前协... JavaScript获取当前协议,域名,路径
JS实现html打印功能,打印... !DOCTYPE htmlhtmlhead meta charset=utf-8 title打印功能...
bootstrap 图片文字居... 问题描述: 让图片和文字居中显示。 解决办法: !-- style--.navbars img{ m...
bootstrap图片排版布局 问题描述: 在使用bootstrap的时候,出现了这样的问题。 排版对不齐。 解决办法: 通过上图发...