にAJAX呼び出しの結果を渡します。これらのajax呼び出しの1つは、外側のajax呼び出しの内側です。 '+ ='jqueryの私は2つのAJAX呼び出しに基づいて、テーブルの内容を変更するためにjqueryのを使用しようとしています内側のAJAX呼び出し
tableRowsを;:
$.ajax({
type: "POST",
url: "../actions.php",
data: { username: username, catId: $('#prodCat').val(), brandId: $('#prodBrand').val(),
typeId: $('#prodType').val(), NameId: $('#prodName').val()},
success: function(data){
$('#prodList').empty();
var result = JSON.parse(data);
var tableRows='';
for(var i = 0; i < result.length; i++) {
var qtyArray = [];
$.ajax({
type: "POST",
url: "../actions.php",
data: { action : 'get_product_carton_single', mainStockId: <?php echo "'".$stockId."'" ?>, productId: result[i]['id']},
success: function(databack){
qtyArray = databack;
console.log(qtyArray);
tableRows += '<tr>';
tableRows += '<td>' + result[i]['id'] + '</td>';
tableRows += '<td>' + (i+1) + '</td>';
tableRows += '<td>' + result[i]['productname'] + '</td>';
tableRows += '<td>' + qtyArray['carton'] + '</td>';
tableRows += '<td>' + qtyArray['single'] + '</td>';
tableRows += '<td class="quantityField"><input class="quantityInput" type="text" name="'+result[i]['id']+'" value="0" data-product-id="'+result[i]['id']+'" data-max-value="'+result[i]['quantity']+'"></td>';
tableRows += '</tr>';
}
});
}
$('#prodList').append(tableRows);
}
});
しかし、私は次のエラーを取得:私は私のコードを単純化しようとしました、私はこの部分を入れたときに
Cannot read property 'id' of undefined
をが、内側のAJAX呼び出しの外
tableRows += '<td>' + result[i]['id'] + '</td>';
tableRows += '<td>' + (i+1) + '</td>';
tableRows += '<td>' + result[i]['productname'] + '</td>';
tableRows += '<td>' + qtyArray['carton'] + '</td>';
tableRows += '<td>' + qtyArray['single'] + '</td>';
tableRows += '<td class="quantityField"><input class="quantityInput" type="text" name="'+result[i]['id']+'" value="0" data-product-id="'+result[i]['id']+'" data-max-value="'+result[i]['quantity']+'"></td>';
tableRows += '</tr>';
、result
変数はアクセス可能ですが、qtyArray
ではありません。私はそれがまだ開始されていないためだと思います。
は、どのように私は自分のテーブルを更新するresult
とqtyArray
の両方を得ることができます。
EDIT:
ここでは、最初のAJAX呼び出しから来た結果のサンプルです: https://jsfiddle.net/8zdey0cv/
ネストされた.ajax()呼び出しの[JavaScript/jQuery変数スコープの問題]の可能な複製](http://stackoverflow.com/questions/6375399/javascript-jquery-variable-scope-issue-with-nested-ajax-通話) –
問題[i]が吹き出すあなたの結果をその時点で、iの値が最終的に限界値よりも大きいこと、増加し続けていることです。クロージャを作成する必要があります。この類似の質問を参照してください:http://stackoverflow.com/questions/6375399/javascript-jquery-variable-scope-issue-with-nested-ajax-calls –
@VanquishedWombatええ、あなたの権利が、なぜそれは増加し続けていますか? forループ
MehdiB