Foros del Web » Programando para Internet » Jquery »

Buscador ajax en tabla HTML dinámica

Estas en el tema de Buscador ajax en tabla HTML dinámica en el foro de Jquery en Foros del Web. Buenos días foro, tengo una tabla de Ingresos Html dinámica (se añaden filas nuevas mediante javascript) con la siguiente estructura de columnas: Categoria (select) Mensualidad ...
  #1 (permalink)  
Antiguo 13/08/2015, 02:37
 
Fecha de Ingreso: mayo-2013
Mensajes: 22
Antigüedad: 11 años
Puntos: 0
Buscador ajax en tabla HTML dinámica

Buenos días foro,

tengo una tabla de Ingresos Html dinámica (se añaden filas nuevas mediante javascript) con la siguiente estructura de columnas:

Categoria (select)
Mensualidad (select)
concepto (input, al empezar a escribir deben aparecer los resultados en un desplegable)
unidades (input)
importe (input)
descuento (input)

Antes de la tabla tengo un buscador en ajax que funciona correctamente, al empezar a escribir en el input del buscador sale un desplegable con las busquedas encontradas, en el momento que hago click en uno de los resultados se carga la info en la primera linea de la tabla y se carga una nueva fila dinamicamente..

El problema viene cuando vuelvo a buscar y selecciono otro elemento del desplegable de busqueda, mi intencion seria que el contenido cargara en la segunda fila de la tabla pero en vez de eso carga en la primera fila de la tabla machacando el contenido previamente insertado.

Código HTML:
Ver original
  1. <tr id="fila">
  2.                                                                 <td>           
  3.                                                                     <a class="toggle-link" onclick="eliminar_fila_recibos(this)">
  4.                                                                         <i class="glyphicon glyphicon-minus"></i>
  5.                                                                     </a>                                           
  6.                                                                 </td>
  7.                                                                    
  8.                                                                 <td>                                           
  9.                                                                     <?php echo $tipos_servicio_select; ?>
  10.                                                                 </td>
  11.                                                                    
  12.                                                                 <td>
  13.                                                                     <?php echo $mensualidades_select; ?>
  14.                                                                 </td>
  15.                                                                
  16.                                                                 <td>
  17.                                                                     <input type="text" id="concepto_ingreso" class="input" value="" style="width: 300px;"/>
  18.                                                                     <!--<input type="text" id="concepto_recibos" class="input buscador_ingresos" value="" style="width: 300px;"/>-->
  19.                                                                     <!--<div id="resultados_busqueda_servicio" class="resul_busq_servicio">
  20.                                                                    
  21.                                                                     </div>-->
  22.                                                                 </td>
  23.                                                                
  24.                                                                 <td>   
  25.                                                                     <input type="text" id="unidades_ingreso" class="input" value="0" style="width: 50px;"/>
  26.                                                                 </td>
  27.                                                                
  28.                                                                 <td>                                           
  29.                                                                     <input type="text" name="precio_ingreso" id="precio_ingreso" class="input precio_recibos" value="0" style="width: 50px;"/>
  30.                                                                 </td>
  31.                                                                
  32.                                                                 <td>   
  33.                                                                     <input type="text" id="descuento_ingreso" class="input" value="0" style="width: 50px;"/>
  34.                                                                 </td>
  35.                                                                        
  36.                                                             </tr>
Para añadir la fila a la tabla dinamicamente:

Código Javascript:
Ver original
  1. var select = recoge_select();
  2.                         var select2 = recoge_select_mensualidades();
  3.                        
  4.                         $('#tabla_ingresos tr:last').after('<tr id="fila"><td><a class="toggle-link" onclick="eliminar_fila_recibos(this)"><i class="glyphicon glyphicon-minus"></i></a></td><td>'+select+'</td><td>'+select2+'</td><td><input type="text" id="concepto_ingreso" class="input buscador_ingresos" value="" style="width: 300px;"/><div id="resultados_busqueda_servicio" class="resul_busq_servicio"></div></td><td><input type="text" class="input" value="0" style="width: 50px;"/></td><td><input type="text" name="precio_ingreso" id="precio_ingreso" class="input precio_recibos" value="0" style="width: 50px;"/></td><td><input type="text" class="input" value="0" style="width: 50px;"/></td></tr>');

Para sobreescribir la fila de la tabla con lo datos de la seleccion del buscador
Código Javascript:
Ver original
  1. function selecciona_servicio(id_servicio_seleccionado)
  2.             {
  3.                 $.ajax(
  4.                 {
  5.                     type: 'POST',
  6.                     url: '<?php echo base_url().'admin_controllers/ingresos_controllers/insertar_ingresos_controller/'.'seleccionar_servicio';?>',
  7.                     data: {info: id_servicio_seleccionado},
  8.                     success: function (data2)
  9.                     {      
  10.                        
  11.                         // Decodifica el array recibido(codificado en JSON) http://www.dyn-web.com/tutorials/php-js/json/array.php
  12.                    
  13.                         var valores2 = JSON.parse(data2);
  14.                        
  15.                        
  16.                         document.getElementById("fila").lastChild.value=valores2.precio_servicio;
  17.                        
  18.                        
  19.                        
  20.                         var select = recoge_select();
  21.                         var select2 = recoge_select_mensualidades();
  22.                        
  23.                         $('#tabla_ingresos tr:last').after('<tr id="fila"><td><a class="toggle-link" onclick="eliminar_fila_recibos(this)"><i class="glyphicon glyphicon-minus"></i></a></td><td>'+select+'</td><td>'+select2+'</td><td><input type="text" id="concepto_ingreso" class="input buscador_ingresos" value="" style="width: 300px;"/><div id="resultados_busqueda_servicio" class="resul_busq_servicio"></div></td><td><input type="text" class="input" value="0" style="width: 50px;"/></td><td><input type="text" name="precio_ingreso" id="precio_ingreso" class="input precio_recibos" value="0" style="width: 50px;"/></td><td><input type="text" class="input" value="0" style="width: 50px;"/></td></tr>');
  24.        
  25.                     }
  26.                 });
  27.             }




Que formas habría para solucionar este problema?

Gracias de antemano.

Última edición por inovaweb; 13/08/2015 a las 10:20
  #2 (permalink)  
Antiguo 13/08/2015, 13:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Buscador ajax en tabla HTML dinámica

Empieza por no asignar el mismo id a las filas puesto que debe de ser un valor único en todo el documento, además, veo que tomas a la fila por dicho identificador y si hay más de una fila con el mismo id, solo tomará a la primera de ellas.

Podrías usar una clase ya que sí puede repetirse y tomarías al último de ellos así:
Código Javascript:
Ver original
  1. $(".clase:last-child")

O así:
Código Javascript:
Ver original
  1. $(".clase").last()

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: ajax, buscador, html, tabla
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 12:30.