Actualmente estoy usando el complemento DataTables para mi proyecto.
Tengo una tabla de datos de origen AJAX en la que solo puede tener una fila seleccionada, ahora, debido a que mi tabla de datos se realiza en el lado del servidor, necesito hacer un seguimiento de cuál se selecciona al cambiar de página.
Por lo tanto, he estado usando esta solución, pero parece que solo funciona para la selección de filas múltiples
Ahora, esencialmente, lo que quiero que suceda es que, cuando selecciona una nueva fila, debe agregar la nueva identificación de fila a la matriz, pero también eliminar la identificación de fila agregada anteriormente de la matriz, por lo que solo debería haber un resultado en la matriz en un tiempo.
Visualmente para una mejor comprensión:
var seleccionado = []
Haga clic en la Fila 1 después de cargar la tabla = [fila_1]
Haga clic en Fila 2 eliminando fila_1 y agregando fila_2 = [fila_2]
var selected = []; $("#example").DataTable({ "processing": true, "serverSide": true, "ajax": "scripts/ids-arrays.php", "rowCallback": function( row, data ) { if ( $.inArray(data.DT_RowId, selected) !== -1 ) { $(row).addClass('selected'); } } }); $('#example tbody').on('click', 'tr', function () { var id = this.id; var index = $.inArray(id, selected); if ( index === -1 ) { selected.push( id ); } else { selected.splice( index, 1 ); } $(this).toggleClass('selected'); } );En lugar de agregar un elemento a la matriz, puede reemplazar toda la matriz. Parece un poco derrochador usar una matriz para almacenar un solo elemento, pero ahí lo tienes.
selected.push( id );se convierte
selected = [id];