Buenos dís, tengo un problema a la hora de realizar una eleccion multiple. No se en que falla y no encuentro solución.
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
:
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>
</body>
</html>
buscar.php
Código PHP:
Ver original?php
require("funciones.php");
if(isset($_POST['grupo'])){
$secciones = dameSeccion($_POST['grupo']);
$html = "<option value=''>- Seleccione una Seccion -</option>";
foreach($secciones as $indice => $registro){
$html .= "<option value='".$registro['seccion']."'>".$registro['seccion']."</option>";
}
$respuesta = array("html"=>$html); }
if(isset($_POST['seccion'])){
$denominaciones= dameDenominacion($_POST['seccion']);
$html = "<option value=''>- Seleccione una Denominacion -</option>";
foreach($denominaciones as $indice => $registro){
$html .= "<option value='".$registro['denominacion']."'>".$registro['denominacion']."</option>";
}
$respuesta = array("html"=>$html); }
?>
funciones.php
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,
array(PDO
::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$conexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
return $conexion;
}
catch (PDOException $e){
die ("No se puede conectar a la base de datos". $e->getMessage()); }
}
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