formulario.php
Código PHP:
Ver original
<?php require_once("funciones.php"); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <script src="jquery-1.10.2.min.js"></script> </head> <body> <form style="width: 480px"> <fieldset> <legend>Prueba</legend> <label>Grupo:</label> <select name="grupo" id="grupo"> <option value="">- Seleccione un Grupo -</option> <?php $grupos = dameGrupo(); foreach($grupos as $indice => $registro){ echo "<option value=".$registro['grupo'].">".$registro['grupo']."</option>"; } ?> </select> <br><br> <label>Seccion:</label> <select name="seccion" id="seccion"> <option value="">- primero seleccione un grupo -</option> </select> <br><br> <label>Denominacion:</label> <select name="denominacion" id="denominacion"> <option value="">- primero seleccione una seccion -</option> </select> </fieldset> </form> <hr>
Código Javascript:
</body>Ver original
<script> $("#grupo").on("change", buscarSecciones); $("#seccion").on("change", buscarDenominacion); function buscarSecciones(){ $("#denominacion").html("<option value=''>- primero seleccione una seccion -</option>"); $grupo = $("#grupo").val(); if($grupo == ""){ $("#seccion").html("<option value=''>- primero seleccione un grupo -</option>"); } else { $.ajax({ dataType: "json", data: {"grupo": $grupo}, url: 'buscar.php', type: 'post', beforeSend: function(){ //Lo que se hace antes de enviar el formulario }, success: function(respuesta){ //lo que se si el destino devuelve algo $("#seccion").html(respuesta.html); }, error: function(xhr,err){ alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\n \n responseText: "+xhr.responseText); } }); } } function buscarDenominaciones(){ $seccion = $("#seccion").val(); $.ajax({ dataType: "json", data: {"seccion": $seccion}, url: 'buscar.php', type: 'post', beforeSend: function(){ //Lo que se hace antes de enviar el formulario }, success: function(respuesta){ //lo que se si el destino devuelve algo $("#denominacion").html(respuesta.html); }, error: function(xhr,err){ alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\n \n responseText: "+xhr.responseText); } }); } </script>
</html>
buscar.php
Código PHP:
funciones.phpVer original
?php require("funciones.php"); $secciones = dameSeccion($_POST['grupo']); $html = "<option value=''>- Seleccione una Seccion -</option>"; foreach($secciones as $indice => $registro){ $html .= "<option value='".$registro['seccion']."'>".$registro['seccion']."</option>"; } } $denominaciones= dameDenominacion($_POST['seccion']); $html = "<option value=''>- Seleccione una Denominacion -</option>"; foreach($denominaciones as $indice => $registro){ $html .= "<option value='".$registro['denominacion']."'>".$registro['denominacion']."</option>"; } } ?>
Código PHP:
Ver original
<?php /* Archivo para funciones */ function conectaBaseDatos(){ try{ $servidor = "localhost"; $puerto = "3306"; $basedatos = "cria"; $usuario = "rasty"; $contrasena = "rasty"; $conexion = new PDO("mysql:host=$servidor;port=$puerto;dbname=$basedatos", $usuario, $contrasena, $conexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); return $conexion; } catch (PDOException $e){ } } function dameGrupo(){ $resultado = false; $consulta = "SELECT grupo FROM grupo"; $conexion = conectaBaseDatos(); $sentencia = $conexion->prepare($consulta); try { if(!$sentencia->execute()){ } $resultado = $sentencia->fetchAll(); //$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC); $sentencia->closeCursor(); } catch(PDOException $e){ echo "Error al ejecutar la sentencia: \n"; } return $resultado; } function dameSeccion($grupo = ''){ $resultado = false; $consulta = "SELECT * FROM seccion "; if($grupo != ''){ $consulta .= " WHERE grupo = :grupo"; } $conexion = conectaBaseDatos(); $sentencia = $conexion->prepare($consulta); $sentencia->bindParam('grupo',$grupo); try { if(!$sentencia->execute()){ } $resultado = $sentencia->fetchAll(); $resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC); $sentencia->closeCursor(); } catch(PDOException $e){ echo "Error al ejecutar la sentencia: \n"; } return $resultado; } function dameDenominancion($seccion = ''){ $resultado = false; $consulta = "SELECT denominacion FROM denominacion"; if($seccion != ''){ $consulta .= " WHERE seccion = :seccion"; } $conexion = conectaBaseDatos(); $sentencia = $conexion->prepare($consulta); $sentencia->bindParam('seccion',$seccion); try { if(!$sentencia->execute()){ } $resultado = $sentencia->fetchAll(); //$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC); $sentencia->closeCursor(); } catch(PDOException $e){ echo "Error al ejecutar la sentencia: \n"; } return $resultado; } ?>
Saludos y Gracias