2015-07-19 47 views
1

我必须asp页面,选择器更改我发送ajax到其他asp页面,并希望从该asp页面取回变量。从一个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?

+0

Ofcourse我tryed,并得到Vb_sIndex =空总是 –

+0

是axaj填入以html格式收到信息的div –

+0

您没有将它传递到您的Ajax函数中, 尝试数据:'startIndex ='+ Vb_sIndex +'', – Frank

回答

1

AJAX运行的客户端后,ASP已处理所有<%...%>部分的,所以你不能从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") 
%>