JQuery DataTables с JEditable - PullRequest
       32

JQuery DataTables с JEditable

0 голосов
/ 02 февраля 2012

У меня есть DataTable, использующий jEditable, чтобы пользователь мог изменять значения, хранящиеся в 3-м столбце.Пользователь может редактировать только значения столбца 3, но, глядя на сообщение AJAX, он не отправляет «ID», значение которого содержится в столбце 1. Глядя на Firebug, я вижу следующее во время POST:

column  2

id  district

row_id  null

value   new text

Вот мой код, я хотел бы добавить строку в часть RETURN, чтобы она возвращалась со значением первого столбца [0] для (this)?Не уверен, как это сделать, довольно новый для Javascript ...

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

/* Apply the jEditable handlers to the table */
$('#district', oTable.fnGetNodes()).editable( 'editable_ajax.php', {
    "callback": function( sValue, y ) {
        var aPos = oTable.fnGetPosition( this );
        oTable.fnUpdate( sValue, aPos[0], aPos[1], aPos[2] );
    },
    "submitdata": function ( value, settings ) {
        return {
            "row_id": this.parentNode.getAttribute('id'),
            "column": oTable.fnGetPosition( this )[2]
        };
    },
    "height": "14px"
} );
} );
</script>

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

При использовании версии 2+ (поскольку на момент написания статьи загрузка не разрешена, но последняя стабильная версия 2.0.7, просто скопируйте файл из источников ...), вы можете использовать этот подходкак указал Йован (создатель) в отчете об ошибке :

var currentKey = '';

$('#example').dataTable().makeEditable({

    fnOnEditing: function(input) {  
        currentKey = input.parents("tr").children("td:first").text();
        return true;
    },

    oUpdateParameters: { 
        key: function() { 
            return currentKey; 
        } 
    }
});
1 голос
/ 08 января 2013

Выяснив проблему, просто установите значение переменной в столбце 1 [0], а затем верните значение в POST.var id2 = oTable.fnGetData (aPos2 [0]);

0 голосов
/ 02 февраля 2012

Я бы попробовал это

"submitdata": function ( value, settings ) {
    console.log(this);
    return {
        "row_id": this.parentNode.getAttribute('id'),
        "column": oTable.fnGetPosition( this )[2]
    };
},

И наблюдаю за вашей консолью для этого объекта, он покажет вам все, к чему у вас есть доступ.

...