Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: GRCH en 4 Diciembre 2016, 20:12 pm



Título: no funciona button creado dinamicamente
Publicado por: GRCH en 4 Diciembre 2016, 20:12 pm
hola, tengo un boton de listar alumnos, que busca en la bd todos los de un curso. para lo mismo el fichero php retorna una lista desplegable de alumnos, y un boton buscar para que una vez seleccionado alguno de la lista busque sus calificaciones..

Osea el boton buscar es creado dinamicamente por la funcion succes(data). El caso es que no funciona, no realiza ningun cambio. no se si tendra algo que ver..

consultaCalificaciones.php

Código
  1. <?php
  2. include_once '../../PHP/Conexion.php';
  3. $conectar = conexionBD();
  4.  
  5.    if (isset($_POST['cursos']) && isset($_POST['divisiones'])){
  6.        global $conectar;
  7.                            $idcurso =htmlentities($_POST['cursos']);
  8.                            $iddivision =htmlentities($_POST['divisiones']);
  9.                            $sqlalumnos="SELECT alumno.idalumno,alumno.idpersona,persona.nombre,persona.apellido FROM alumno";
  10.                            $sqlalumnos.=" LEFT JOIN persona ON alumno.idpersona=persona.idpersona WHERE idcurso=".$idcurso." AND iddivision=".$iddivision.";";
  11.                            $rsalumnos= select($conectar,$sqlalumnos);
  12.  
  13.                            }
  14.                           ?>
  15.                             <form method="post" id="listado" name="listado">
  16.  <section id="sección">
  17.  
  18.      <?php
  19.  
  20.  
  21.      $totalalumnos=count($rsalumnos);?>
  22.  <table style="width: 100%;">
  23.       <tr>
  24.        <td style="alignment-adjust: central;">Listado
  25.       <select style="text-align: center;alignment-adjust: ce;" name="alumnos" id="alumnos">
  26.       <?php
  27.      if ($totalalumnos>0){
  28.      foreach ($rsalumnos as $alumno){
  29.        $idalu=$alumno['idalumno'];
  30.        $nombrecompleto=$alumno['nombre'];
  31.        $nombrecompleto.=' '.$alumno['apellido'];?>
  32.       <option value="<?php echo $idalu;?>"><?php echo  $nombrecompleto;?></option>
  33.      <?php }?>
  34.        </select></td>
  35.        <td><input type="button" id="buscar" value="buscar"/></td>
  36.       </tr>
  37.       </table>
  38.  
  39.  
  40.        </section>
  41.  
  42. </form>
  43. <?php }
  44. ?>

y el js es este
Código
  1. $(document).ready(function(){
  2. //cargo cursos y divisiones al carga pag
  3. $('#curso').load("getcursos.php");
  4. $('#division').load("getdivisiones.php");
  5.  
  6. $("#listar").click(function(){
  7. var form=$("#busqueda").serialize();
  8. var curso=$('#curso').val();
  9. var division=$('#division').val();
  10.  
  11. var trim = $("#trimestre").val();
  12. var url = "consultaCalificaciones.php";            
  13.  
  14.  
  15.    $.ajax({
  16.  
  17.           type: "POST",
  18.           url: url,
  19.           data: {form,trimestre:trim,cursos:curso,divisiones:division},
  20.  
  21.           success: function(data)
  22.           {
  23.             $("#respuesta").html(data);
  24.            }
  25. });
  26.  
  27. });
  28. $("#buscar").click(function(){
  29.   var curso=$('#curso').val();
  30.   var division=$('#division').val();
  31.  
  32.   $("#alumnos").change(function() {
  33.            var id = $(this).children(":selected").attr("value");
  34.                    });
  35.                    var url = "calificaciones.php";
  36.  
  37.                  $.ajax({
  38.  
  39.           type: "POST",
  40.           url: url,
  41.           data: {trimestre:trim,idalu:id,cursos:curso,divisiones:division},
  42.  
  43.           success: function(data)
  44.           {
  45.             $("#notas").html(data);
  46.            }
  47. });    
  48.    });
  49. });
  50.  

Probe hacer un alert dentro de buscar y nada..muchas gracias


Título: Re: no funciona button creado dinamicamente
Publicado por: [u]nsigned en 6 Diciembre 2016, 16:47 pm
Proba con:

Código
  1. $('#buscar').on('click',function(e){
  2.    //tu codigo aca
  3.    alert("It's work!");
  4. });

Y nunca anides un manejador (handler) de eventos dentro de otro. Veo que en tu codigo el evento change de #alumnos esta dentro del evento click de #buscar.