我有两个单独的AJAX调用。一个从txt文件中获取项目列表并从中创建HTML表格,另一个与数据库对话以查找每个项目的成本,然后在每个项目的相应表格单元格中列出(我知道这可能听起来像一个奇怪的方法,但在我们的情况下它是一个很好的选择......)。
问题在于,在页面加载后创建表(或者确切地说,创建了表的行)后,价格没有写入表中。我不知道如何解决这个问题。
$(document).ready(function() {
makeItemTable();
listPrices();
...
});
function makeItemTable() {
$.ajax({
url: 'products.php',
type: 'GET'
})
.done(function(response) {
$('.price-table > tbody').html(response);
})
}
function listPrices() {
.ajax({
url: 'prices.php',
type: 'GET'
})
.done(function(response) {
priceData = $.parseJSON(response);
$('.price-table tr').each(function() {
var item = $(this).find('td:nth-child(1)').text();
if (priceData[item]) {
var price = priceData[item];
$(this).find('td:nth-child(2)').text(price);
}
})
}
答案 0 :(得分:0)
你可以尝试
使用setTimeout检查'products.php'的请求执行回调完成(请求'price.php'的内部回调)
另一种方式
var jqxhr1 = $.ajax("products.php");
var jqxhr2 = $.ajax("prices.php");
$.when(jqxhr1, jqxhr2).done(function(jqxhr1, jqxhr2) {
// Handle both XHR objects
alert("all complete");
});
在'products.php'的回调请求中调用函数listPrices()
希望能提供帮助