El plugin en cuestión es Table Drag and Drop. En resumen, el plugin lo que hace es que te permite ordenar los registros de una tabla(<table>) mdiante drag and drop.
Tengo dos problemas con el plugin:
1. Las tablas en el proyecto pueden ser n cantidad (actualmente trabajo con dos y funciona perfecto). Porque van a ser tablas(<table>) generadas desde base datos. El problema en sí es la manera como se usa el plugin:
Código Javascript:
Ver original
$("#table1").tableDnD({
Si van a ser tablas dinámicas, como "dinamizo" también el llamado del plugin para esa n cantidad de tablas? Al plugin toca pasarle el id de la tabla que va a usarlo :S
2. Para saber el orden que van seleccionando, el plugin cuenta con un método:
Código Javascript:
Ver original
tableDnD.serialize()
Que es un arreglo que contiene los índices del orden y los id de los registros. Lo uso para hacer el ajax y pasarle el nuevo orden a la base de datos y realizar el update.
El problema viene que para recibir el post (el que genera ese método), debo llamar el id de la tabla que ordenaron, pero si logro hacer el llamado a tablas dinámicas, según yo, no sabría cuál es la tabla en cuestión que usaron.
Les dejo como tengo el javascript para que se hagan a una idea:
Código Javascript:
Ver original
<script type="text/javascript"> $(document).ready(function(){ $("#table1").tableDnD({ onDragClass: "hhh", onDrop: function(table, row){ $.ajax({ type: 'post', url: 'producto/ordenar.php', data: $.tableDnD.serialize(), success: function(data){ if(data == 1) { var rows = table.tBodies[0].rows; for (var i=0; i<rows.length; i++) { $('#table-products tr[id='+rows[i].id+'] td:first').html(i+1); } } }, error: function() { } }); } }); $("#table2").tableDnD({ onDragClass: "hhh", onDrop: function(table, row){ $.ajax({ type: 'post', url: 'producto/ordenar.php', data: $.tableDnD.serialize(), success: function(data){ if(data == 1) { var rows = table.tBodies[0].rows; for (var i=0; i<rows.length; i++) { $('#table-products2 tr[id='+rows[i].id+'] td:first').html(i+1); } } }, error: function() { } }); } }); }); </script>
Espero me haya hecho entender
Saludos