Layui怎么传id到编辑页面或删除页面?

今天用了Layui的“数据表格 - 数据操作”示例代码,结果发现点击“编辑”按钮出出来一个弹出消息框,效果如下:

Layui的“数据表格 - 数据操作”编辑

 

虽然说也可以用“弹出层”做编辑页面,但是,由于我编辑的东西很多,用“弹出层”不太理想。

我就想能不能像URL链接那样,直接点击链接就跳转走了。例如:点击一个”编辑“按钮,就直接跳转到相对应的”编辑页面“。

 

由于我是用的PHP做的服务端的,我看了JS代码,id 传到编辑页感觉不是很好处理,它的数据有两个关键的地方,如下:

1、初始化并获取所有的数据:var data = obj.data;

2、获取id字段的数据:data.id;

 

因此,我就采用另一种方法:Layui跳转页面代码(可携带复杂参数)

 

我用的具体代码如下:

虽然说原理上也很相似,只能说我们变相的已经把ID传到编辑页面去了。当然,如果还有其它的参数也是可以随意增加的。

<script>
            layui.use('table', function(){
                var table = layui.table;
                //监听表格复选框选择
                table.on('checkbox(demo)', function(obj){
                    console.log(obj)
                });
                //监听工具条
                table.on('tool(demo)', function(obj){
                    var data = obj.data;
                    if(obj.event === 'detail'){
                        layer.msg('ID:'+ data.id + ' 的查看操作');
                    } else if(obj.event === 'del'){
                        layer.confirm('真的删除行么', function(index){
                            obj.del();
                            layer.close(index);
                        });
                    } else if(obj.event === 'edit'){
                        //layer.alert('编辑行:<br>'+ JSON.stringify(data));
                        layer.open({
                            content: '开始编辑',
                            success: function(layero, index){
                                self.location="<?php echo $HOMEURL.$ADMIN_ADDRESS;?>?type=category&action=edit&id=" + data.id;//跳到指定页面
                            }
                        });


                    }
                });

                var $ = layui.$, active = {
                    getCheckData: function(){ //获取选中数据
                        var checkStatus = table.checkStatus('idTest')
                            ,data = checkStatus.data;
                        layer.alert(JSON.stringify(data));
                    }
                    ,getCheckLength: function(){ //获取选中数目
                        var checkStatus = table.checkStatus('idTest')
                            ,data = checkStatus.data;
                        layer.msg('选中了:'+ data.length + ' 个');
                    }
                    ,isAll: function(){ //验证是否全选
                        var checkStatus = table.checkStatus('idTest');
                        layer.msg(checkStatus.isAll ? '全选': '未全选')
                    }
                };

                $('.demoTable .layui-btn').on('click', function(){
                    var type = $(this).data('type');
                    active[type] ? active[type].call(this) : '';
                });
            });
        </script>

 

最终经过测试,我觉得有很多多余的JS代码,我删除了一些,最终确定用以下代码:

else if(obj.event === 'del') {
      layer.confirm('确定删除数据吗?', function (index) {
        obj.del();
        layer.close(index);
        self.location="<?php echo $HOMEURL.$ADMIN_ADDRESS;?>?type=category&action=del&token=<?php echo $get_token; ?>&id=" + data.id ;//跳到指定页面,可带复杂参数
  });
 }else if(obj.event === 'edit'){
        self.location="<?php echo $HOMEURL.$ADMIN_ADDRESS;?>?type=category&action=edit&id=" + data.id;//跳到指定页面,可带复杂参数
}
    A+
发布日期:2021年03月07日 11:34:02  所属分类:Layui
最后更新时间:2021-03-09 09:12:10
付杰
  • ¥ 98.0元
  • 市场价:398.0元
  • ¥ 69.0元
  • 市场价:99.0元
  • ¥ 99.0元
  • 市场价:159.0元
  • ¥ 99.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: