将变量从一个asp分配给其他asp页面

时间:2015-07-19 10:08:22

标签: asp.net vbscript asp-classic

我必须使用asp页面,在选择器更改时我将ajax发送到其他asp页面,并希望从该asp页面获取变量。

的index.asp

<div  id="ExSearch" name="ExSearch" >
<script>

$(function() {   
    $('div.selector select').on('change', onValueChange);
    var sIndex = 2;
    var Vb_sIndex;
    Vb_sIndex = <%=Vb_sIndex_geted%> ' How to do that?
    function onValueChange() {      
      sIndex = sIndex + 1;
        $.ajax({
            url: '/Functions/ExSearch.asp',
            type: 'POST',
            data: 'startIndex=' + sIndex + '',
            dataType: 'text',
            success: function (data) {
                $("#ExSearch").html(data);
            }
        });
    };
});

</script>
<%= Vb_sIndex%>

ExSearch.asp

<% Vb_sIndex_geted = Request.form("startIndex") + 1
     Response.Write = Vb_sIndex_geted ' for first click it = 4,how to assign this value to index.asp?
%>

如何在ExSearch.asp中设置index.asp中的Vb_sIndex?

1 个答案:

答案 0 :(得分:1)

在 ASP处理完所有<%...%>部分之后,AJAX运行客户端,因此您无法将AJAX中的值返回到服务器端变量(没有一些)额外的工作,无论如何)。

此外,您在示例中混合了客户端和服务器端代码。 Vb_sIndex在客户端jQuery函数中声明,但您尝试在服务器端ASP标记中使用它<%= Vb_sIndex%>。这不会起作用。当ASP处理<%= Vb_sIndex%>时,您将收到错误(如果声明Option Explicit)或空值(如果没有)。

如果要将AJAX调用的返回值分配给服务器端变量,请考虑在AJAX success函数中创建并提交表单,并将data作为隐藏表单变量传递。这样的事情应该有效:

$.ajax({
    ....
    success: function (data) {
        $('<form method="post" action="index.asp"><input type="hidden" name="h" value="' + data + '"></form>').appendTo('body').submit();
    }            
}

然后,当您的网页重新加载时,您可以从Form集合中提取值:

<%
    Dim Vb_sIndex
    Vb_sIndex = Request.Form("h")
%>