2011-11-07 92 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