2010-09-10 103 views
0

好的。我需要做這樣的事情:jquery嵌套ajax調用記得內部ajax調用的第一個HTML響應

1)做一個GET ajax請求並記住變量中的HTML響應。 2)在第一個ajax請求(在回調函數中)中,我需要發出第二個POST ajax請求,並將HTML響應追加到第一個請求中記住的HTML響應。 3)用變量中的HTML替換div。

這是我要如何看:

var firstHtml; 

    $.ajax({ 
     url: 'page.php', 
     success: function(data) { 
      firstHtml = data; 
      $.ajax({ 
       type: 'POST', 
       url: 'page2.php', 
       data: 'param1=a&param2=b', 
       success: function(htmlResponse){ 
        // the firstHtml var is NULL here... why? 
        var finalHtml = firstHtml + htmlResponse; 
        $('#div').html(finalHtml);    
       } 
      }); 
     } 


    }); 

但你可以從評論看這是行不通的。變量firstHtml在第二個AJAX請求中突然爲NULL。

回答

1

試試這個:

$.ajax({ 
    url: 'page.php', 
    success: function(result1) { 
     $.ajax({ 
      type: 'POST', 
      url: 'page2.php', 
      context: { firstResult: result1 }, 
      data: { param1: 'a', param2: 'b' }, 
      success: function(secondResult) { 
       var finalHtml = this.firstResult + secondResult; 
       $('#div').html(finalHtml); 
      } 
     }); 
    } 
}); 
+0

它仍然是NULL。 – 2010-09-10 13:09:13

+0

似乎有效:簽出[此演示](http://jsfiddle.net/KtGkr/1/) – 2010-09-10 13:20:54