jEditable & DataTables - таблица не будет обновляться при обновлении - PullRequest
1 голос
/ 03 февраля 2012

Я использую jQuery DataTables с установленным плагином jEditable. У меня все работает правильно, таблица рендерит и тянет данные правильно. Таблица является редактируемой, а скрипт корректно обновляет внутреннюю БД. Единственная проблема заключается в том, что значение обновляется, затем ячейка пуста до тех пор, пока вы не нажмете кнопку «Обновить», тогда новое значение будет видно.

Я пытался включить fnDraw в обратный вызов, чтобы он перерисовывал таблицу, но я не могу понять это? Единственное, чего мне не хватает, - динамически обновлять таблицу после записи в БД нового значения.

Вот мой код:

<script>
$(document).ready(function() {
/* Init DataTables */
var oTable = $('#district').dataTable();

/* Apply the jEditable handlers to the table */
$('#district', oTable.fnGetNodes()).editable( 'lib/editable_ajax.php', {
    tooltip   : 'Click cell to edit value...',
    indicator : 'Saving...',
    style   : 'display:block;',
     submit    : 'OK',
     cancel    : 'Cancel',
     data   : " {'PDC 30':'PDC 30','PDC 14':'PDC 14','PDC 81':'PDC 81','PDC 58':'PDC 58'}",
     type    : 'select',
    "Callback": function( sValue, x) {
        var aPos = oTable.fnGetPosition( this );
        oTable.fnUpdate( sValue, aPos[0], aPos[1]);

        /* Redraw the table from the new data on the server */
        oTable.fnClearTable( 0 );
        oTable.fnDraw();
    },
    "submitdata": function ( value, settings ) {
        var aPos2 = oTable.fnGetPosition( this );
        var id2 = oTable.fnGetData( aPos2[0] ); 
        return {
            "row_id": this.parentNode.getAttribute('id'),
            "id2": id2[0],
            "column": oTable.fnGetPosition( this )[ 2 ]         
        };
    },
    "height": "14px",
} );
} );
</script>

1 Ответ

0 голосов
/ 05 октября 2012

попробуйте инициализировать переменную oTable вне функции и посмотрите, хотя это не должно иметь никакого значения, так как ваш код выглядит хорошо.

...