2015-07-19 36 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") 
%>