jQuery DataTable, как перепривязать DataTable, когда таблица автоматически обновляется фоновым процессом - PullRequest
0 голосов
/ 24 июня 2019

У меня есть таблица, которую я создаю с данными, поступающими из MySQL через код PHP и связывающими ее с DataTable, таблица и DataTable работают отлично, но я добавил кнопку удаления для строки таблицы, когда я нажимаю, что она вызываетPHP-сервер, который удаляет запись, чем я вызываю новый PHP, чтобы запросить БД, построить новую таблицу и отправить ее обратно на страницу, все работает нормально, за исключением того, что когда новый запрос отформатирован и помещен в возраст dataTableне является обязательным, вот мой сценарий.

Спасибо

function aa_userDeleteSkill(in_id, in_uid) {
    $.ajax( {
        url: "user_delete_skill.php",
        type: "get", //send it through get method
        data: {
            id: in_id,
            uid: in_uid
        },
        success: function (response) {
            console.log( "success -- delete: " + response );

            // cleanup
            if ( $.fn.DataTable.isDataTable( '#SkillsUser' ) ) {
                $('#SkillsUser').DataTable().destroy();
            }
            $('#SkillsUser tbody').empty();

            // call the rendering function
            aa_userSkillRender( in_uid );

            jQuery('#SkillsUser').dataTable({
                "pageLength": 10,
                "ordering": false,
                "responsive": true,
                "destroy": true,
                drawCallback: function(dt) {
                    //console.log("draw() callback; initializing Select2's.");
                    //$('.experience-jquerySelect2-tag').select2({tags: true, width: "6em"});
                }
            });

        },
        error: function (xhr) {
            console.log( "failed -- delete: " + xhr );
        }
    } );
} // end of fucntion

function aa_userSkillRender( uid ) {
    // The following will prevent all future AJAX requests from being cached, 
    // regardless of which jQuery method you use ($.get, $.ajax, etc.)
    $.ajaxSetup({
        cache: false
    });

    // call the backend service 
    $("#IDuserListSkills").load("./user_render_skill.php?id=" + uid + " #IDuserListSkillsReturned",
        function (responseTxt, statusTxt, xhr) {
            console.log("responseTxt: " + responseTxt);
            if (statusTxt == "success") {
                console.log("user_render_skill.php: External content loaded successfully!");
            }
            if (statusTxt == "error") {
                console.log("user_render_skill.php -- Error: " + xhr.status + ": " + xhr.statusText);
            }
        }
    );

} // end of fucntion
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...