ドキュメントの準備ができたときに AJAX 呼び出しによって生成されたテーブルがあります。テーブル内の要素をクリックすると、要素を編集できるダイアログ ボックスが開きます。
保存ボタンをクリックすると、変更が保存され、ダイアログが正常に閉じますが、テーブルを生成する AJAX の再読み込みをトリガーしたいと考えています。
かなりの数の編集の後、これが現在のコードです。詳細情報を取得するために、コンソール ログを追加しました。
モーダル ダイアログが X 閉じるアイコン (保存されない) で閉じられると、コンソール ログは期待どおりに報告されます。別のコード セットを呼び出すモーダルで [保存] をクリックすると、コンソール ログに同じことが数秒間に 100 回報告されます。それを止めるのはリフレッシュだけです。
$(document).ready(function () {
$("#elementView").dialog({
autoOpen: false,
modal: true,
width: 900,
height: 500,
resizable: false,
close: function () {
$("#elementholder").html('Loading elements...<br /><br />');
var jobid = <?= $_GET[jobID]; ?>
console.log("performing post to get elements list for jobID " + jobid);
$.ajax({
type: "POST",
url: "ajax_listelements.php",
data: "jobid=" + jobid,
success: function (msg) {
// alert ("success");
if (msg == 'error') {
$("#elementholder").html('<font color="red"><b>Error</b></font>');
} else {
$("#elementholder").html(msg);
}
} // complete AJAX success
}); // complete AJAX
} // complete close function
}); // complete modal
// detect row click on elements page to open modal
tr = $('#elementtable').find('tr');
// 1.7.1: live is deprecated in 1.9, would need to change on jQuery ON
tr.live('click', function (event) {
elementID = $(this).find("td.thisID span").html();
// modal content loaded from mdl_element.php using ID
$('#elementView').load('mdl_elementview.php?elementID=' + elementID).dialog('open');
});
});