- Tengo este formulario:
Código
<?php require_once "php/Clases/conexion/conexion.pro.php"; require_once "php/Clases/crud/crud.php"; $model = new Crud(); $model->Read(); $filas = $model->rows; $total = count($filas); ?> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <section class="criterio"> <div id="crit-form"> <fieldset> <form class="crit-form" method="post" name="search_form" id="search_form"> <input type="text" name="cod.ficha" id="search_fi" class="parse" placeholder="introduzca Codigo Ficha Ej: Ch001"> <input type="text" name="ci" id="search_ci" class="parse" placeholder="Cedula Use Puntos Ej: 49.781.190"> <input type="text" id="search" class="parse" placeholder="introduzca un Nombre Ej: Antonio"> <select> </select> <input type="submit" id="btn-sub" class="parse" Value="Procesar"> </form> </fieldset> </div> </section> <section> <p> </p> </section> </body> </html>
- En <div id="resultados"></div> se van cargando una serie de resultados dependiendo de lo que escriba en los inputs esto ya lo pude hacer, anexo a eso quise realizar una funcion que al darle click ha X resultado se generara otra busqueda y a su vez se mostraran resultados mas detallados hasta ese punto no he llegado al 100% sin embargo hice mis pruebas de la siguiente manera.
- Esta es mi funcion para generar la primera busqueda.
Código
$(document).ready(function() { $('#search').focus(); $('#search_form').submit(function(e){ e.preventDefault(); }) $('#search_form .parse').on('change',function(){ var envio = $(this).val(); $('#resultados').html('<h2><img src="img/loadin.gif" width="20" /> Cargando...</h2>'); $.ajax({ type: 'POST', url: 'php/search.php', data: ('search='+envio), success: function(resp){ if (resp!="") { $('#resultados').html(resp); } } }) }) })
- Esa me funciona de 10 y tengo esta otra que está en el mismo documento es la que se supone que me debe mostrar la info que yo quiero al darle click al select que esta en Search.php y que se carga en <div id="resultados"></div>
Código
$(document).ready(function() { $('#display-lps').on('click',function(){ $.ajax({ type: 'POST', url: 'script/process.php', data: $('#search_form').serialize(), success: function(data){ if (data!="") { $('#result').html(data); } } }); }); });
- Esta funcion no se ejecuta y realizando mas pruebas me percate que si hago esto, la funcion si funciona.
Código
<?php require_once "php/Clases/conexion/conexion.pro.php"; require_once "php/Clases/crud/crud.php"; $model = new Crud(); $model->Read(); $filas = $model->rows; $total = count($filas); ?> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <section class="criterio"> <div id="crit-form"> <fieldset> <form class="crit-form" method="post" name="search_form" id="search_form"> <select size="10" name="nombre" id="display-lps"> <?php foreach ($filas as $fila) { ?> <option id="resultados" > <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos']; ?> </option> <?php } ?> </select> <input type="text" name="cod.ficha" id="search_fi" class="parse" placeholder="introduzca Codigo Ficha Ej: Ch001"> <input type="text" name="ci" id="search_ci" class="parse" placeholder="Cedula Use Puntos Ej: 49.781.190"> <input type="text" id="search" class="parse" placeholder="introduzca un Nombre Ej: Antonio"> <select > </select> <input type="submit" id="btn-sub" class="parse" Value="Procesar"> </form> </fieldset> </div> </section> <section> <p> </p> </section> </body> </html>
- Lo que hice fue eliminar <div id="resultados"></div> y colocar ese select con el Foreach que son un fragmento de lo que esta en Search.php y es lo que Ajax mostraba en el <div id="resultados"></div> que elimine.
- Yo me imagino que la funcion no se cumple porque el #display-lps que esta en el select que trae Ajax aun no se construido en el Html, entonces cual seria la solucion, yo inventando hice esto: En el Search.php inclui <script src="script/ajax.js"></script> justo en el momento donde Ajax trae el fragmento del Select y eso me funciono la funcion se ejecuta sin problema, sin embargo quiero saber si hay una forma mas eficiente de hacerlo?
- Claro yo puedo crear otro script y sacar la funcion click y incluirla sola en search.php para no repetir la funcion ready, pero hay una manera en Jquery mas eficiente?
-Saludos