これは私のコードのどこかで問題になるかもしれませんが、ここに手がかりがあることを願っています。
jQuery AJAX呼び出しを使用してMySQLデータベースを更新し、次に別の呼び出しを使用してデータベースを読み取り、ページのテーブルを更新しています。私の問題は、データベースを正しく更新することですが、2番目の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);
}
2番目の関数もうまく機能し、ボタンから呼び出すとページ要素'serviceRecordsTable'を更新します。しかし、最初の呼び出しの「成功」部分から呼び出すと、更新されていない古いデータが返されます。2番目の関数に「アラート」ボックスを配置して、何が起こっているかを確認します。これにより、関数がデータベースからの古い、事前に更新されたデータを実際に認識していることが確認されます。しかし、ページのボタンから2番目の関数をアクティブにすると、2番目の関数が新しいデータでページを更新します。
本当に立ち往生。どんな助けでも大歓迎です。