2010-09-10 66 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