在jquery中从一个页面向另一个页面传递和检索多个参数

zz2j4svz  于 2023-02-15  发布在  jQuery
关注(0)|答案(4)|浏览(167)
    • bounty将在6天后过期**。此问题的答案可获得+100声望奖励。user366312正在寻找此问题的更详细答案:1.**如果我不想显示作为参数传递的数据,该怎么办?**2.如果我想将JSON对象作为参数传递,该怎么办?

我想使用jQuery从一个页面传递4个名称到另一个页面使用jQuery在winRT应用程序。完成使用一个参数。如何传递多个参数和检索在第二页?
一个参数的编码。
default.html

<html>
<head>
<script>
       $(document).ready(function () {
        $(function () {
            $('#navigate12').click(function () {
                var te = $("#text1").val();
                var tea = $("#text2").val();
                 window.location.href = "/page.html?cal=" + te; 
                   });
        });});
</script>
</head>
<body>
 <button id="navigate12">navigate</button>
 <input id="text1" type="text"/>
 <input id="text2" type="text"/>
 <input id="text3" type="text"/>
 <input id="text4" type="text"/>
</body>
</html>

 page.html
<html>
<head>
      <script src="/js/jquery-1.9.1.js"></script>
      <script>
              $(document).ready(function () {                  
                function qs() {
                var qsparam = new Array();
                var query = window.location.search.substring(1);
                var parms = query.split('&');
                for (var i = 0; i < parms.length; i++) {
                    var pos = parms[i].indexOf('=');
                    if (pos > 0)
                    {
                        var key = parms[i].substring(0, pos);
                        var val = parms[i].substring(pos + 1);
                        qsparam[key] = val;
                    }

                }
               var msg = new Windows.UI.Popups.MessageDialog(val);
               msg.showAsync();
             } 
               var splitstr = qs();
                    });
</script>
<title>
</title>
</head>
<body>

</body>
</html>
3b6akqbq

3b6akqbq1#

可以使用"?param = foo"作为第一个参数将GET参数传递给页面。其他参数使用"&"代替"?"。
因为你传递的是GET参数,所以你可以把它们都放在URL中,然后在目标页面中读取它们。或者,你也可以使用POST参数。
下面是GET与PUT参数的比较:
http://www.w3schools.com/tags/ref_httpmethods.asp
如果以GET形式传递所有参数,则可以扩展此位:

var te = $("#text1").val();
var tea = $("#text2").val();
window.location.href = "/page.html?cal=" + te;

变成了这样

var te = $("#text1").val();
var text2 = $("#text2").val();
var text3 = $("#text3").val();
var text4 = $("#text4").val();
window.location.href = "/page.html?cal=" + te + "&text2=" + text2 + "&text3=" + text3 + "&text4=" + text4;

关于获取其他页面中的参数:我假设您希望通过jQuery获得另一个页面中的GET参数,因为您的目标页面是纯HTML。

hsvhsicv

hsvhsicv2#

在default.html中使用此技术完成

$(function () {
               $('#navigate12').click(function () {
                var te = $("#text1").val();
                var text2 = $("#text2").val();
                var text3 = $("#text3").val();
                var text4 = $("#text4").val();
                window.location.href = "/page.html?cal=" + te + "&text2=" + text2 +
               "&text3=" + text3 + "&text4=" + text4; <-- this line has changes to include multiple parameters rest is same as in the question

以及page.html中的内容

<script>
              $(document).ready(function () {                  
              function qs() {
                var qsparam = new Array(10);
                var query = window.location.search.substring(1);
                var parms = query.split('&');
               for (var i = 0; i < parms.length; i++) {
               var pos = parms[i].indexOf('=');
               if (pos > 0)
              {
                        var key = parms[i].substring(0, pos);
                        var val = parms[i].substring(pos + 1);
                        qsparam[i] = val;    
              }                          
                                                       }
               text1.value = qsparam[0];
               text2.value = qsparam[1];
               text3.value = qsparam[2];
               text4.value = qsparam[3];


              }
              var splitstr = qs();


                    });
    </script>
    <title></title>
</head>
<body>
   <input id="text1" type="text" />
    <input id="text2" type="text" />
   <input id="text3" type="text" />
    <input id="text4" type="text" />
 </body>
 </html>

我们调用函数qs()使用
变量分割字符串= qs();
它拆分参数,并查看不同变量u的值,如果u有任何疑问,可以使用text1.value=parms:-)

46scxncf

46scxncf3#

下面是使用或不使用jQuery从查询字符串中检索参数的不同方法的详细答案:
How can I get query string values in JavaScript?
例如:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
kmpatx3s

kmpatx3s4#

发送值如下

window.location.href = "testlocation.aspx?Id=" + tickerCode.label + "&Id2=" + financialYear.label;

并接收如下..

function getActualYear() {
    var Id = getParameterByName('Id');
    var Id2 = getParameterByName('Id2');
    console.log('Id=' + Id);
    console.log('Id2=' + Id2);
}

function getParameterByName(id) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

相关问题