• 基于Layui的页面传参及获取参数


    预计实现效果

    通过点击编辑按钮,能够把该行数据显示在表格中

    • table.html页面所属表格截取一行:

    • edit.html页面:

    实现代码

    • table.html关键代码,传递参数
    // 监听更新(编辑)操作
    table.on('tool(currentTableFilter)', function (obj) {
          var st_id = obj.data.id;
          var st_username = obj.data.username;
          var st_grade = obj.data.grade;
          var st_department = obj.data.department;
          var st_dorm = obj.data.dorm;
          var st_sex = obj.data.sex;
          var st_phone = obj.data.phone;
          var st_email = obj.data.email;
          if (obj.event === 'edit') { 
                var index = layer.open({
                      title: '编辑用户',
                      type: 2,
                      shade: 0.2,
                      maxmin: true,
                      shadeClose: true,
                      area: ['55%', '90%'],
                      content: '../table/edit/edit.html?st_id='+st_id+'&st_username='+escape(st_username)+'&st_grade='+st_grade+'&st_phone='+st_phone+
                      '&st_department='+escape(st_department)+'&st_dorm='+escape(st_dorm)+'&st_sex='+escape(st_sex)+'&st_email='+st_email,
                });
          }
    }
    
    • edit.html关键代码(js):接收参数并放进输入框
    function getQueryString(name) { 
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); 
        var r = window.location.search.substr(1).match(reg); 
        if (r != null) { 
            return unescape(r[2]); 
        } 
        return null; 
    }
    
    //接收table.html的编辑按钮传递的参数
    var phone = getQueryString("st_phone");
    var id = getQueryString("st_id");
    var username = unescape(getQueryString("st_username"));
    var dorm = unescape(getQueryString("st_dorm"));
    var grade = getQueryString("st_grade");
    var email = getQueryString("st_email");
    var department = unescape(getQueryString("st_department"));
    
    //将参数赋值给input输入框
    document.getElementsByName("phone")[0].value = phone;
    document.getElementsByName("id")[0].value = id;
    document.getElementsByName("username")[0].value = username;
    document.getElementsByName("dorm")[0].value = dorm;
    document.getElementsByName("email")[0].value = email;
    document.getElementsByName("department")[0].value = department;
    document.getElementsByName("grade")[0].value = grade;
    

    问题

    • 遇到问题①:传参中文乱码
      解决方法:在table.html使用escape包裹传入参数,在edit.html用unescape获取传进的参数,列子见上方username、dorm、department参数

    • 遇到问题②:弹出的页面性别一栏固定选中了“男”
      解决方法,因php需要用到name传参,增加了一个id来区分男女选项,根据传入的性别修改checked状态,实现选中对应选项。

    <input type="radio" name="sex" value="男" title="男" id="male" checked="">
    <input type="radio" name="sex" value="女" title="女" id="female" checked="">
    
    var sex = unescape(getQueryString("st_sex"));
    //使弹窗打开可根据传入性别选中对应选项
    if(sex=='男'){
        document.getElementById("male").checked=true;
        document.getElementById("female").checked=false;
    }else{
        document.getElementById("male").checked=false;
        document.getElementById("female").checked=true;
    }
    
  • 相关阅读:
    智算之道复赛
    试题 历届试题 幸运数(模拟)
    使用memcpy函数时要注意拷贝数据的长度
    试题 历届试题 大臣的旅费(求树的直径,两次dfs)
    试题 历届试题 连号区间数(规律)
    试题 历届试题 错误票据(输入处理,桶排序)
    试题 历届试题 剪格子(dfs)
    Rope大法(可持久化平衡树)
    常用数论知识总结(持续更新)
    计蒜客 035 三角形内点的个数(皮克定理)
  • 原文地址:https://www.cnblogs.com/crush-wyy/p/13236846.html
Copyright © 2020-2023  润新知