1

这可能是我代码中其他地方的问题,但我希望这里有线索。

我正在使用 jQuery AJAX 调用来更新我的 MySQL 数据库,然后使用另一个来读取数据库并更新我页面上的表。我的问题是我正确更新了数据库,但是我的第二个 AJAX 调用(包装在一个函数中)正在返回旧数据。但是,如果我再次触发该功能,它会完美运行。

这是第一个 AJAX 调用:

$.ajax ({
cache: false,                   
type:   'POST',     
url:    'qry_creats_record.php',
data:   {   
        equipID : $('#equip_id').val(),
        dateSent : $('#txt_to_repair').val(),
        organization : $('#organization').val(),
        success: function() {
        ServiceTable($('#equip_id').val());   <--CALLS SECOND FUNCTION                  
        }
    }           
}); 

效果很好,完美更新数据库。然后我想用这个函数更新页面(在我第一次调用的“成功”部分调用):

function ServiceTable(equipID) {
  var serviceRecords = $.ajax ({
  cache: false,                 
  type: 'POST',
  url: 'qry_show_repairs_table.php',
  async: false,
  data: {  equip_id : equipID   
        },
    success: function() {
      return data;
    }
}).responseText;
$('#serviceRecordsTable').html(serviceRecords);     
}

第二个函数也很好用,如果我从按钮调用它,它会更新页面元素“serviceRecordsTable”。但是当我从第一次调用的“成功”部分调用它时,它会返回旧的、未更新的数据。我在我的第二个函数中放置了一个“警报”框以查看发生了什么,它确认该函数确实看到了来自我的数据库的旧的、预先更新的数据。但是,如果我从页面上的按钮激活第二个功能,第二个功能会使用新数据刷新我的页面。

真的卡住了。任何帮助表示赞赏。

4

1 回答 1

3

试试这样 -

$.ajax ({
cache: false,                   
type:   'POST', 
url:    'qry_creats_record.php',
data:   {   
      equipID : $('#equip_id').val(),
     dateSent : $('#txt_to_repair').val(),
     organization : $('#organization').val(),

 },
  success: function(result) {
    if(result=='success') {
    ServiceTable($('#equip_id').val());   <--CALLS SECOND FUNCTION  
   }                
    }          
}); 

从“qry_creats_record.php”返回字符串“成功”。

于 2012-05-04T04:06:26.330 回答