0

我有两个单独的 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);
         }       
      })
    }
4

1 回答 1

0

你可以试试

  1. 使用 setTimeout 检查对 'products.php' 的请求执行回调完成(内部回调对 'prices.php' 的请求)

  2. 另一种方式

    var jqxhr1 = $.ajax("products.php");
    var jqxhr2 = $.ajax("prices.php");
    $.when(jqxhr1, jqxhr2).done(function(jqxhr1, jqxhr2) {
     // Handle both XHR objects
      alert("all complete");      
    });
    
  3. 在对“products.php”的回调请求中调用函数 listPrices()

希望有所帮助

于 2013-11-02T03:50:04.357 回答