Сохранение переменной javascript в переменной на стороне сервера (vbscript) - PullRequest
0 голосов
/ 19 июня 2011

Я знаю, что вы не можете сохранить переменные javascript в переменные на стороне сервера (vbscript) напрямую, но есть ли способ обойти это, например, сохранить переменные java-скрипта в скрытых входных данных html, а затем использовать javascript для публикации.Это возможно?Если нет, что еще я могу сделать?Ниже мой код до сих пор получить значение раскрывающегося списка - javascript

        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>

Ответы [ 2 ]

3 голосов
/ 19 июня 2011

То, что вы ищете, называется ajax.Вы можете сделать это вручную или лучше использовать библиотеку JavaScript, такую ​​как MooTools, jQuery или Prototype.

Ознакомьтесь с Обучающим курсом по Ajax Университета Google .Я бы не стал пользоваться учебниками w3schools.

Просто чтобы охватить все основы, почему вы не можете просто попросить пользователя отправить форму?

Кроме того, вы можете сделать это с помощью файлов cookie, хотя выне будет получать значения файлов cookie на сервере до следующего получения или получения пользователем POST.

0 голосов
/ 10 ноября 2011

Возможно сохранить значения переменных 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;
}
}

Теперь вы можете получить значение переменной «product» JavaScript-переменной в серверной переменной «returnValue».

...