2011-06-18 43 views
0

我知道你不能直接将JavaScript变量保存到服务器端变量(VBScript),但有没有办法解决这个问题,如保存Java脚本变量到HTML隐藏输入,然后使用JavaScript发布。这可能吗?如果不是我还能做什么?下面是我到目前为止的代码得到一个下拉列表中的值 - 的JavaScript保存JavaScript变量在服务器端变量(VBScript)

 function selectedDatabase() { 

      select_temp = form1.elements["selection"]; 
      select_index = select_temp.selectedIndex; 
      select_text = select_temp.options[select_index].text;                

     }  

下面是HTML代码

<center><select id="selection" onchange="selectedDatabase()"> 
<option>Movies</option> 
<option>Movies 2</option> 
<option>New Movies</option> 
<option>New Movies 2</option> 
</select></center> 
</td></tr> 

回答

3

你要寻找的被称为AJAX。您可以手动完成,或者更好地使用MooTools,jQuery或Prototype等JavaScript库。

退房Google University's Ajax tutorial。我会避免w3schools的教程。

只是为了覆盖所有的基础,为什么你不能只是让用户提交表单?

此外,您可以使用cookie来做到这一点,但在用户下一次GET或POST之前,您将无法获取服务器上的cookie值。

0

可以将JavaScript变量值存储到服务器端变量中。你所要做的就是实现“System.Web.UI.ICallbackEventHandler”类。

以下是演示如何操作的代码。


  • 在ASPX页面:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title>Client Calback Example</title> 
    <script type="text/ecmascript"> 
    function LookUpStock() 
    { 
     var lb=document.getElementById("tbxPassword"); 
     var product=lb.value; 
     CallServer(product,""); 
    } 

    function ReceiveServerData(rValue){ 
    } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      <input type="password" id="tbxPassword" /> 
      <input type="Button" onclick="LookUpStock">Submit</button> 
     </div> 
    </form> 
</body> 

**

  • 在代码背后(CS)页

**

public partial class _Default : System.Web.UI.Page,System.Web.UI.ICallbackEventHandler 
{ 
protected String returnValue; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    String cbReference = Page.ClientScript.GetCallbackEventReference 
    (this,"arg", "ReceiveServerData", "context"); 
    String callbackScript; 
    callbackScript = "function CallServer(arg, context)" + 
    "{ " + cbReference + ";}"; 
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), 
    "CallServer", callbackScript, true); 
} 
public void RaiseCallbackEvent(String eventArgument) 
{ 
    if(eventArgument == null) 
    { 
     returnValue = "-1"; 
    } 
    else 
    { 
     returnValue = eventArgument; 
    } 
} 
public String GetCallbackResult() 
{ 
    return returnValue; 
} 
} 

现在,你可以得到的JavaScript变量 “产品” 价值到服务器端变量 “的returnValue”。