0

ドキュメントの準備ができたときに 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');

    });

});
4

1 に答える 1