• base64记录查询参数!


    base64记录查询参数!

    https://github.com/dankogai/js-base64

    Base64.encode('dankogai');  // ZGFua29nYWk=
    Base64.encode('小飼弾');    // 5bCP6aO85by+
    Base64.encodeURI('小飼弾'); // 5bCP6aO85by-
    
    Base64.decode('ZGFua29nYWk=');  // dankogai
    Base64.decode('5bCP6aO85by+');  // 小飼弾
    // note .decodeURI() is unnecessary since it accepts both flavors
    Base64.decode('5bCP6aO85by-');  // 小飼弾
    

    首页,获取查询参数!

    /**
    * [获取URL中的参数名及参数值的集合]
    * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
    * @param {[string]} urlStr [当该参数不为空的时候,则解析该url中的参数集合]
    * @return {[string]}       [参数集合]
    */
    function GetRequest(urlStr) {
        if (typeof urlStr == "undefined") {
            var url = decodeURI(location.search); //获取url中"?"符后的字符串
        } else {
            var url = "?" + urlStr.split("?")[1];
        }
        var theRequest = new Object();
        if (url.indexOf("?") != -1) {
            var str = url.substr(1);
            strs = str.split("&");
            for (var i = 0; i < strs.length; i++) {
                theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
            }
        }
        return theRequest;
    }
    
    var request = Base64.encode(JSON.stringify(GetRequest()));
    console.log(Base64.decode(request));
    if (request) {
        var tail = '&request=' + request;
    } else {
        var tail = '';
    }
    

    传入编辑页面

    $(".edit").on('click', function () {
        var id = $(this).data('id');
        window.location.href = '__APP__/Product/edit?id=' + id + tail;
    });
    

    后台获取,并传入

    $request = $_GET['request'];
    $this->assign('request', $request);
    
    <input type="hidden" name="request" id="request" value="{$request}" />
    

    取消,或者完成编辑的时候,解析Base64

    var request = $("#request").val();
    if (request) {
        var str = '&request=' + request;
    } else {
        var str = '';
    }
    
    $("#cancel_btn").on('click', function () {
        // 解密参数
        var request = JSON.parse(Base64.decode($("#request").val()));
        let tail = '';
        for(let key in request){
            if (tail == '') {
                tail += '?' + key + '=' + request[key];
            } else {
                tail += '&' + key + '=' + request[key];
            }
            console.log(key + '---' + request[key])
        }
    
        window.location.href = 'index'+tail;
    });
    
    $("#add_form").ajaxForm({
        dataType: "json",
        success: function (obj) {
            if (obj.errno == 0) {
                alert('添加编辑完成');
                var request = JSON.parse(Base64.decode($("#request").val()));
                let tail = '';
                for (let key in request) {
                    if (tail == '') {
                        tail += '?' + key + '=' + request[key];
                    } else {
                        tail += '&' + key + '=' + request[key];
                    }
                    console.log(key + '---' + request[key])
                }
                window.location.href = 'index' + tail;
            } else {
                alert(obj.errdesc);
            }
            return false;
        }
    });
    

    小结

    base64的好处是能够存储无数个参数!一个参数,能够解决传入参数问题!

  • 相关阅读:
    linux网络connect: network is unreachable的解决记录
    kali系统输入msfvenom -l为什么不能显示
    基于fluxion 6.9 钓鱼wifi
    【操作系统】Linux
    【JAVA基础】Mybatis 基本应用
    饮冰三年-人工智能-Vue-70 Promise
    饮冰三年-人工智能-Vue-69 路由
    饮冰三年-人工智能-Vue-68 CLI
    饮冰三年-人工智能-Vue-67 Webpack
    饮冰三年-人工智能-Vue-66 Vue组件化
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/12870009.html
Copyright © 2020-2023  润新知