将参数发送到另一页

时间:2012-11-23 06:13:41

标签: javascript extjs url-parameters

将参数从一个页面发送到另一个页面时,我遇到了一个神秘的问题。

在其中一个ExtJs方法中,我通过POST将参数发送到另一个页面:

autoLoad : {  
url : url_servlet+'form.jsp',  
params: str,
scripts: true  
}

但我不知道如何在JavaScript中获取此参数。 Okey我说,并在url中发送参数:

 url : url_servlet+'form.jsp?ss=333'

在另一页:

            function param(Name){
            var Params = location.search.substring(1).split("&");
            var variable = "";
            for (var i = 0; i < Params.length; i++){
                if(Params[i].split("=")[0] == Name){
                    if (Params[i].split("=").length > 1)
                        variable = Params[i].split("=")[1];
                return variable;
                }
            }
            return "";
        } 

        var s =param('ss');
        alert(s);

看到空警报。

在瘟疫中我尝试:

window.location.search

并获取" "

什么错了?我读了几个例子,每个人都看到这样的代码。

3 个答案:

答案 0 :(得分:1)

这里可能发生的事情是ExtJS将整个页面从远程位置加载到当前页面。

发生这种情况时,由于加载而运行的代码将在当前页面中执行(可能根本没有ss=xyz参数)。

但是,您的form.jsp应该有权访问查询字符串,并且可以将其注入到返回ExtJS的页面中。

另一种选择是在加载页面后以某种方式从JavaScript传递数据,但我不太了解ExtJS如何告诉你如何做到这一点。

答案 1 :(得分:0)

您无法从javascript获取POST参数。 POST参数是服务器,javascript在客户端..

如果是GET则可以使用parseUri library

var value = uri.queryKey['param'];

答案 2 :(得分:0)

你可以试试下面的功能吗?

 function param(Name){
            var Params = location.search.substring(1).split("&");
            var variable = "";
            for (var i = 0; i < Params.length; i++){
                if(Params[i].split("=")[0] == Name){
                    variable = Params[i].split("=")[1];
                    return variable;
                }
            }
            if(variable=="") return variable;

        } 
    var s =param('ss');
    alert(s);