Foros del Web » Programando para Internet » Jquery »

Valor de un dataTable no llega por POST

Estas en el tema de Valor de un dataTable no llega por POST en el foro de Jquery en Foros del Web. Hola amigos. Tengo una dataTable con dos botones, editar y eliminar. El eliminar abre una ventana modal que muestra la info del empleado y esta ...
  #1 (permalink)  
Antiguo 15/04/2014, 11:30
 
Fecha de Ingreso: junio-2013
Ubicación: Argentina
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
Valor de un dataTable no llega por POST

Hola amigos.
Tengo una dataTable con dos botones, editar y eliminar. El eliminar abre una ventana modal que muestra la info del empleado y esta funcionando bien. El problema que tengo es en el editar, que me muestra en otra página los datos del empleado. Cada botón tiene asociado el código del empleado. Cuando hago el submit, no esta llegando el código del empleado a la otra página, solo me llega el valor de la cantidad de registros a mostrar del dataTable

Código Javascript:
Ver original
  1. $('#frmListadoPersonal').on('click', 'button', function(elemento){
  2.         elemento.preventDefault();
  3.  
  4.         var ejecutar = $(this).attr('name');
  5.         if (ejecutar == 'btnEliminar'){
  6.             buscarPersonal($(this).val(),'eliminacion');
  7.         }
  8.         else if (ejecutar == 'btnEditar'){
  9.             $('btnEditar').val();
  10.             $('#frmListadoPersonal').submit();
  11.         }
  12. });

el asunto es que si comento todo el evento on(), si llega el código del empleado, por que hay algo mal en la implementación del evento.
  #2 (permalink)  
Antiguo 15/04/2014, 14:16
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 8 meses
Puntos: 38
Respuesta: Valor de un dataTable no llega por POST

Hola , te sugeriría que le dieras un vistazo a la api de jquery o algún tutorial ,googleando encuentrasa muchos ...


Código Javascript:
Ver original
  1. buscarPersonal($(this).val(),'eliminacion');

allí le estas pasando a tu funcion buscarPersonal valor input o atrributo value del form pero no entiendo porque aqui le pones this?

y aquí no ?
Código Javascript:
Ver original
  1. $('#frmListadoPersonal').submit()

Hazlo al revés. El this en el submit y el selector #frmListadoPersonal dentro de tu función!

Y mejor pon el html del form así podremos ayudarte!

Saludos!
  #3 (permalink)  
Antiguo 15/04/2014, 14:18
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 8 meses
Puntos: 38
Respuesta: Valor de un dataTable no llega por POST

Cita:
Iniciado por Djoaq Ver Mensaje
Hola , te sugeriría que le dieras un vistazo a la api de jquery o algún tutorial ,googleando encuentrasa muchos ...


Código Javascript:
Ver original
  1. buscarPersonal($(this).val(),'eliminacion');

allí le estas pasando a tu funcion buscarPersonal valor input o atrributo value del form pero no entiendo porque aqui le pones this?

y aquí no ?
Código Javascript:
Ver original
  1. $('#frmListadoPersonal').submit()

Hazlo al revés. El this en el submit y el selector #frmListadoPersonal dentro de tu función!

Y mejor pon el html del form así podremos ayudarte!

Saludos!
  #4 (permalink)  
Antiguo 16/04/2014, 05:53
 
Fecha de Ingreso: junio-2013
Ubicación: Argentina
Mensajes: 24
Antigüedad: 11 años
Puntos: 0
Respuesta: Valor de un dataTable no llega por POST

Cita:
Iniciado por Djoaq Ver Mensaje
allí le estas pasando a tu funcion buscarPersonal valor input o atrributo value del form pero no entiendo porque aqui le pones this?
el this lo uso para obtener el valor del objeto tratado, en este caso el botón


Cita:
Iniciado por Djoaq Ver Mensaje
allí le estas pasando a tu funcion buscarPersonal valor input o atrributo value del form pero no entiendo porque aqui le pones this?

y aquí no ?
Código Javascript:
Ver original
$('#frmListadoPersonal').submit()
En el else no uso la función buscarPersonal porque la cargo en el evento ready de la otra página.
El form en cuestión es el siguiente:

Código HTML:
Ver original
  1. <form id="frmListadoPersonal" method="post" action="personal.php">
  2.         {% if lenguaje == 'es' %}
  3.             <input type="hidden" id="hdnLanguage" value="{{ lenguaje }}" >
  4.             {% else %}
  5.             <input type="hidden" id="hdnLanguage" value="" >
  6.         {% endif %}
  7.         <button class="btn btn-danger">Nuevo Empleado</button>
  8.         <div class="table-responsive">
  9.             <table  id="tbPersonal" class="table table-striped">
  10.                 <thead>
  11.                     <tr>
  12.                         <th>Apellido</th>
  13.                         <th>Nombre</th>
  14.                         <th>Cargo</th>
  15.                         <th>Pais</th>
  16.                         <th>&nbsp;</th>
  17.                         <th>&nbsp;</th>
  18.                     </tr>
  19.                 </thead>
  20.             </table>
  21.         </div>
  22.     </form>

el table se carga con la siguiente función

Código Javascript:
Ver original
  1. function listarPersonal(){
  2.         $.ajax({
  3.             url: 'procesar_buscar.php',
  4.             type: 'POST',
  5.             data: { tarea: 'listarPersonalPaginado'},
  6.             dataType: 'json',
  7.             success: function (data) {
  8.                 if (data.success) {
  9.                     $.each(data, function (index, record) {
  10.                         if ($.isNumeric(index)) {
  11.                             var row = $("<tr />");
  12.                             var edit = '<button name="btnEditar" class="btn btn-default btn-mini" value="'+record.codpersonal+'"><i class="glyphicon glyphicon-pencil"></i></button>';
  13.                             var remove = '<button name="btnEliminar" class="btn btn-default btn-mini" value="'+record.codpersonal+'" data-toggle="modal" data-target="#divBajaPersonal"><i class="glyphicon glyphicon-remove"></i></button>';
  14.                             $("<td />").text(record.apellidos).appendTo(row);
  15.                             $("<td />").text(record.nombres).appendTo(row);
  16.                             $("<td />").text(record.cargo).appendTo(row);
  17.                             $("<td />").text(record.pais).appendTo(row);
  18.                             $("<td />").html(edit).appendTo(row);
  19.                             $("<td />").html(remove).appendTo(row);
  20.                             row.appendTo("#tbPersonal");
  21.                         }
  22.                     })
  23.                 }
  24.  
  25.                 $('#tbPersonal').dataTable({
  26.                     "sPaginationType": "full_numbers",
  27.                     "oLanguage": {
  28.                         "sUrl": "dataTables.spanish.txt"
  29.                     }
  30.                 })
  31.             }
  32.         });
  33.     }
  #5 (permalink)  
Antiguo 18/04/2014, 04:17
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 8 meses
Puntos: 38
Respuesta: Valor de un dataTable no llega por POST

Hola he estado un poco liado , no he podido conectarme antes.
Mira beto13 yo personalmente creo que el problema lo tienes en que no estas usando los selectores correctamente...

En tu funcion añade 2 clases a los botones ...
editar y eliminar

Código Javascript:
Ver original
  1. function listarPersonal(){
  2.         $.ajax({
  3.             url: 'procesar_buscar.php',
  4.             type: 'POST',
  5.             data: { tarea: 'listarPersonalPaginado'},
  6.             dataType: 'json',
  7.             success: function (data) {
  8.                 if (data.success) {
  9.                     $.each(data, function (index, record) {
  10.                         if ($.isNumeric(index)) {
  11.                             var row = $("<tr />");
  12.                             var edit = '<button name="btnEditar" class="btn btn-default btn-mini editar" value="'+record.codpersonal+'"><i class="glyphicon glyphicon-pencil"></i></button>';
  13.                             var remove = '<button name="btnEliminar" class="btn btn-default btn-mini eliminar" value="'+record.codpersonal+'" data-toggle="modal" data-target="#divBajaPersonal"><i class="glyphicon glyphicon-remove"></i></button>';
  14.                             $("<td />").text(record.apellidos).appendTo(row);
  15.                             $("<td />").text(record.nombres).appendTo(row);
  16.                             $("<td />").text(record.cargo).appendTo(row);
  17.                             $("<td />").text(record.pais).appendTo(row);
  18.                             $("<td />").html(edit).appendTo(row);
  19.                             $("<td />").html(remove).appendTo(row);
  20.                             row.appendTo("#tbPersonal");
  21.                         }
  22.                     })
  23.                 }
  24.  
  25.                 $('#tbPersonal').dataTable({
  26.                     "sPaginationType": "full_numbers",
  27.                     "oLanguage": {
  28.                         "sUrl": "dataTables.spanish.txt"
  29.                     }
  30.                 })
  31.             }
  32.         });
  33.     }

Y luego es tan sencillo como :

Código Javascript:
Ver original
  1. $('.eliminar').on('click', 'button', function(elemento){
  2.         elemento.preventDefault();
  3. buscarPersonal($(this).val(),'eliminacion');
  4.  
  5.   });
  6.  $('.editar').on('click', 'button', function(elemento){
  7.        
  8.         $('#frmListadoPersonal').submit();
  9.   });

un saludo!!!!

Última edición por Djoaq; 18/04/2014 a las 04:31

Etiquetas: datatable, llega, post, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:02.