mysterious problem with JS variable / variable is displayed only after alert

mysterious problem with JS variable / variable is displayed only after alert

Hello,

I have a big problem with the "output2"-variable!
output2 is declared in the first ajax query(line 15) and is described in the second ajax query(line 30 and 32).

Now I want to use output2(line 45), but the variable is empty!

Now the mystery:
I write a alert() befor line 45 and the variable is filled.
WHY?

  1.     $("#AJPizza").bind("click", function() {
  2.         $.ajax({
  3.             type: "POST",
  4.             url: "r_article.php",
  5.             dataType: "xml",
  6.             success: function(xml) {
  7.                 var output = '';
  8.                
  9.                 $('articleZ', xml).each(function(i) {
  10.                     var idA = $(this).find("idA").text();
  11.                     var nameS = $(this).find("nameS").text();
  12.                     var number = $(this).find("number").text();
  13.                     var nameA = $(this).find("nameA").text();
  14.                     var picture = $(this).find("picture").text();
  15.                     var output2 = '';
  16.                    
  17.                     $.ajax({
  18.                         type: "POST",
  19.                         url: "r_ingredient.php",
  20.                         data: {idArticle: idA},
  21.                         dataType: "xml",
  22.                         success: function(xml2) {
  23.                             var number = $('ingredientZ', xml2).length;
  24.                             $('ingredientZ', xml2).each(function(k) {
  25.                                 var idI = $(this).find("idI").text();
  26.                                 var name = $(this).find("name").text();

  27.                                 number --;
  28.                                 if(number != 0) {
  29.                                     output2 += name + ", ";
  30.                                 } else {
  31.                                     output2 += name;
  32.                                 }
  33.                             });
  34.                         }
  35.                     });
  36.                    
  37.                     //alert(idA);
  38.                    
  39.                     output += '<div data-role="collapsible">';
  40.                     output += '<h3>' + nameA + ' (' + nameS + ')</h3>';
  41.                     output += '<ul data-role="listview">';
  42.                     output += '<li>';
  43.                     output += '<img src="pizza.jpg" />';
  44.                     output += '<p>Belag: ' + output2 + '</p>';
  45.                     output += '</li>';
  46.                     output += '</div>';
  47.                 });
  48.                 $("#coll_article").html(output);
  49.                 $("#tester").trigger('create');
  50.             }
  51.         });
  52.     });