Llevo un buen rato comiendome la cabeza y volviendome loco porque estoy intentando coger un valor del objeto para usarlo en un boton de la tabla. Necesito coger el id de la fila seleccionada (la primera columna y posición en el objeto).
Así inicializo datatables:
var table = $('#example').DataTable( {
serverSide: true,
dom: 'Bfrtip',
ajax: '/get?op=2',
columns: [
{ data: 'id' },
// more columns
],
buttons: [
{
text: 'New',
action: function ( e, dt, node, config ) {
window.location.href = '/url?op=new'
}
},
{
text: 'Modify',
action: function ( e, dt, node, config ) {
window.location.href = '/url?op=modify&id=' + dt.row( { selected: true } ).id() )
},
enabled: false
},
{
text: 'Delete',
action: function ( e, dt, node, config ) {
},
enabled: false
}
],
select: true
} );
Según la documentación asi es como se cogen los datos... He probado de varias maneras, usando un alert():
alert( dt.row( { selected: true } ).id() ); // undefined
alert( JSON.stringify(dt.row( { selected: true } ).id()) ); // "undefined"
alert( JSON.stringify(dt.row( { selected: true } ).data()[0]) ); // undefined
Lo raro es que si que puedo acceder al objeto y ver todo lo que tiene...
alert( JSON.stringify(dt.row( { selected: true } ).data()) );
// {"id":1,"key":"value","etc":"etc"}
¿Alguna idea? :huh:
Edito: Solucionado:
var rw = dt.rows({ selected: true }).data()[0];
alert(rw.id); // 1