zoukankan      html  css  js  c++  java
  • 页面跳转参数不丢失

    需求:页面编辑后,返回列表页面,参数不丢失,能够记住页数以及筛选条件。

    我坚信,不管白猫黑猫,能捉到耗子的就是好猫,当然如果能够高效的,简单的处理最好。

    我的思路就是,把列表页面地址作为参数传递过去。

    这里就会面临一个问题,url本身就是由多个参数组成的,这样纯粹的传递,就会出问题,参数丢失。

    所以要对url进行加密。

    escape()、encodeURI()、encodeURIComponent()

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。

    escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以将参数中的中文、特殊字符进行转义,而不会影响整个URL。

    经过测试,发现encodeURIComponent方法可以很好的解决这个问题。

    1.设置url

    // 设置当前url
    var list_url = '/document/order/default.php?page=' + page_nums + '&'+ $("#form1").serialize();
    var e_list_url = encodeURIComponent(list_url);
    $("#list_url").val(e_list_url);

    2.传递url

    var list_url = $('#list_url').val();
    window.location.href='/document/order/view.php?order_id='+order_id+'&action=edit&handler=admin&list_url='+list_url;

    3.解析url并跳转

    var list_url = '<?php echo $list_url;?>';
    d_list_url = decodeURIComponent(list_url);
    window.location.href = d_list_url;

    这样就能实现,参数不丢失了。主要就是页码和筛选条件。

  • 相关阅读:
    JavaScript
    关于setInterval()你所不知道的地方
    JavaScript面向对象和原型函数
    GET和POST有什么区别?及为什么网上的多数答案都是错的
    10个最常见的 HTML5 面试题及答案
    Ajax我选择这样入门
    前端应当了解的Web缓存知识
    JavaScript
    Linux rhel7 下MySQL5.7.18详细安装文档
    思科交换机配置DHCP的四个方面
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/4964468.html
Copyright © 2011-2022 走看看