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

Assign variable from one asp to other asp page

我必须 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 设置 Vb_sIndex 到 index.asp?

AJAX 运行客户端 ASP 已经处理了你所有的 <%...%> 部分,所以你不能 return 从 AJAX 到服务器端变量的值(无论如何不需要一些额外的工作)。

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

如果您想将 AJAX 调用的 return 值分配给服务器端变量,请考虑在 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")
%>