2011-11-07 88 views
1

我有一个应用程序,通过QueryString将值传递给一个asp页面,如下面的代码所示,此调用是通过JavaScript函数完成的。现在我需要传递相同的值到ASP页面而不使用QueryString,是否可以使用除QueryString以外的任何其他值传递给start.asp页面?将值传递给QueryString以外的页面调用时的ASP页面

location.href = "start.asp" + 
       "?var1=" + someval1+ 
       "&var2=" + someval2; 

回答

2

在你的页面包括一个小的形式: -

<form id="frmStart" method="POST" action="start.asp" style="display:none"> 
    <input name="var1" /> 
    <input name="var2" /> 
</form> 

您的代码将被: -

var frmStart = document.getElementById("frmStart"); 
frmStart.var1.value = "val1"; 
frmStart.var2.value = "val2"; 
frmStart.submit(); 

“start.asp”将访问发布的值为: -

Dim var1 : var1 = Request.Form("var1") 
Dim var2 : var2 = Request.Form("var2") 

如果可能变量的列表本身是动态的,那么您可以使用一些javascript来动态创建表单。

function post (url, data) 
{ 
    var frmStart = document.createElement("form"); 
    document.body.appendChild(frmStart); 
    frmStart.action = "start.asp"; 
    frmStart.method = "POST"; 
    foreach (var name in data) 
    { 
     var inp = document.createElement("input"); 
     inp.name = name; 
     inp.value = data[name]; 
     frmStart.appendChild(inp); 
    } 
    frmStart.submit(); 
} 

post("start.asp", {var1: "val1", var2: "val2"}); 
+0

@AnthonyWJines:在我的情况下,我有一个.htm页面,它有一个点击按钮的按钮,它将调用一个JavaScript函数,它将更改location.herf以导航到start.asp页面。该功能很好,非常感谢。 – Arvind

2

仅有的两个方法,用于发送的值是GET(查询字符串)或POST。 ,您可以拨打后电话很容易在JavaScript或更容易与jQuery

$.post("start.asp", { var1: "val1", var2: "val2" }); 
+0

是否将JQuery .post从当前页面导航到“start.asp”页面作为问题中的代码? – AnthonyWJones

+0

@Anthony不会,它会通过AJAX做到这一点。然而,将一个'success'处理程序添加到重定向用户的ajax请求中,或者在失败时显示一条消息是一件简单的事情。 –

+0

@Rory:将用户重定向到哪里? Start.asp页面再次?因此,start.asp需要将初始值存储在POST的某个位置,以便可以在重定向的后续GET中检索它们。 – AnthonyWJones