Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2013, 13:38
art_rockerd
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 3 meses
Puntos: 6
Pregunta .click no funciona con tabla generada Dinámicamente

Hola amigos buen dia, les escribo por que estoy atorada con algo, tengo dos campos de busqueda, lo que hago es cuando encuentra resultado (1 o muchos) los pinta en un div que esta "oculto", utilizo jquery (.ajax) y php, para buscar en bdd los resultados y enviarlos de vuelta a jquery, el detalle que tengo es que, a esos resultados que obtengo, los formateo para que se muestren en forma de tabla, y lo que quiero, pero no lo logro, es que cuando le den clic a cada elmento de la lista que encontro me envie un alert. Pero simplemente no funciona, copie todo ese codigo HTML que me genera el php y lo coloco solito en otra pagina y me funciona, el detalle es que cuando hago que se genere diamicamente dicha tabla, no quiere funcionar el js. Les comparto mi codigo.

Código Javascript:
Ver original
  1. ///////////////////////////FUNCION PARA VALIDAR Y BUSCAR LAS VENTAS HECHAS////////////////////////////
  2. $("#consultar").click(function()
  3.     {
  4.     if($("#telefono").val().length < 1&$("#folio").val().length < 1){
  5.         alert ("No pueden estar vacios los dos campos, introduzca un criterio para la busqueda");
  6.         }else {
  7.             $.ajax({
  8.             type: "POST",
  9.             url:'consultasGerente.php',
  10.             data:{
  11.                 bandera:"yes",
  12.                 linea:$('#telefono').val(),
  13.                 folio:$('#folio').val()
  14.                 },
  15.             success: function(data){
  16.                 $("#msgbox4").fadeTo(200,0.1,function()
  17.                     {
  18.                     $(this).html('Buscando...').fadeTo(900,1,
  19.                         function(){
  20.                             var folio = data;
  21.                             $("#listado").fadeTo(200,0.1,function() //start fading the messagebox
  22.                                                         { //add message and change the class of the box and start fading
  23.                                                           $("#listado").html(data).fadeTo(900,1);;
  24.                                                         });
  25.                             //$("#listado").html(folio);
  26.                             $(this).html('Busqueda Terminada...').fadeTo(900,1);
  27.                            
  28.                         });
  29.                     });//END msjbox4
  30.                
  31.                
  32.             },
  33.             error:function(){
  34.                 alert('error');
  35.             }        
  36.          });//end ajax
  37.            
  38.         }
  39.        
  40.     });//end consultar
  41. ///////////////////////////FUNCION PARA MOSTRAR LOS DATOS DE LAS VENTAS////////////////////////////
  42. /* ESTA ES LA QUE NO ME FUNCIONA*/
  43. $(".folios").click(function()
  44.     {
  45.         var folioSelected = $(this).html();
  46.         alert (folioSelected);
  47.        
  48.        });//end consultar


Aqui el PHP que busca en BDD y envia los resulados ya formateados en HTML(tablas)
Código PHP:
Ver original
  1. function consultar_datos($linea,$folio){
  2.                 //echo $linea." y ".$folio;
  3.                 include "conexionMysqli.php";
  4.                 $linea = $mysqli->real_escape_string($linea);
  5.                 $folio = $mysqli->real_escape_string($folio);
  6.                 $query="SELECT folio_intel as folio, date(fecha_venta) as fecha_venta
  7.                        FROM ventas
  8.                        WHERE telefono='$linea' OR folio_intel='$folio'";
  9.         $result = $mysqli->query($query) or die($mysqli->error.__LINE__);
  10.                 if($result->num_rows > 0) {
  11.                    $tabla = "<table border='1'><tr><th  class='B_Titulos'>Folio</th><th  class='B_Titulos'>Fecha</th></tr>";
  12.                    while ($row = $result->fetch_assoc()){ //para varios resultados
  13.                 //OBTENIENDO Y ORDENANDO LOS DATOS...
  14.                                 $folio=$row['folio'];
  15.                                 $fVenta=$row['fecha_venta'];
  16.                                 $tabla .= "<tr><td ><div class='folios'>".$folio."</div></td>";
  17.                                 $tabla .= '<td>'.$fVenta.'</td></tr>';
  18.                                 }
  19.                                     $tabla .= '</table>';
  20.                                     echo $tabla;
  21.                 }else {
  22.             echo 'No hay resultados con esos datos';   
  23.         }
  24.             }//end consultar_datos

y este es mi HTML
Código HTML:
Ver original
  1. <table width="300" border="1" cellpadding="3">
  2.            <tr>
  3.              <th colspan="2" align="center" class="B_Titulos">Buscar Linea Telmex</th>
  4.             </tr>
  5.              <tr>
  6.              <td align="center"><label for="telefono">No. Telefonico:</label></td>
  7.              <td align="center"><input onkeypress="return validarNum(event)" id="telefono" name="telefono" type="text" size="25" maxlength="10" placeholder="Maximo 10 digitos" /></td>
  8.              </tr>
  9.              <tr>
  10.                <td align="center"><label for="telefono">No. de Folio:</label></td>
  11.                <td align="center"><input onkeypress="return validarNum(event)" id="folio" name="folio" type="text" size="25" maxlength="20" placeholder="Maximo 20 digitos" /></td>
  12.             </tr>
  13.              <tr>
  14.              <td colspan="2"><label for="consultar"></label>
  15.              <div id="consultar"></div>
  16.              </td>
  17.              </tr>
  18.              <tr>
  19.                <td colspan="2"><span id="msgbox4" class="mensajes" style="display:none"></span></td>
  20.              </tr>
  21.           </table><!-- TERMINA TABLE-->
  22.         </form></td>
  23.         </tr>
  24.       <tr>
  25.         <td height="35" colspan="2">&nbsp;</td>
  26.         </tr>
  27.       <tr>
  28.         <td><div id="listado" style="display:none"><!-- AQUI SE MOSTRARAN LOS RESULTADOS--></div></td>
  29.          </tr>
  30.     </table>

Existe algun por que de que no quiera funcionar el $(".folios").click(function()

Como les comente, si lo hago estatico si me funciona, aqui esta el ejemplo de los resultados que me arroja el PHP pero aqui lo hago "estatico":
Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>probar clase</title>
  4. <script src="js/jquery-1.8.2.min.js" type="text/javascript" ></script>
  5. <script type="text/javascript" language="javascript">
  6. $(document).ready(function()
  7. {
  8.     $(".folios").click(function()
  9.     {
  10.         var folioSelected = $(this).html();
  11.         alert (folioSelected);
  12.        
  13.        });
  14.  });
  15. </head>
  16. <table border="1">
  17.     <tbody><tr><th class="B_Titulos">Folio</th>
  18.         <th class="B_Titulos">Fecha</th></tr>
  19.             <tr><td><div class="folios">13020113044900020420</div></td>
  20.             <td>2013-02-01</td></tr>
  21.         <tr><td><div class="folios">13020113050300020420</div></td>
  22.             <td>2013-02-01</td></tr>
  23.         <tr><td><div class="folios">13020113051800020420</div></td>
  24.             <td>2013-02-01</td></tr>
  25.     </tbody>
  26. </body>
  27. </html>

Muchas gracias por su ayuda. Saludos!