Foros del Web » Programando para Internet » Jquery »

Problema eleccion multiple de select (json)

Estas en el tema de Problema eleccion multiple de select (json) en el foro de Jquery en Foros del Web. 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 @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 11/11/2013, 03:26
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 11 años, 1 mes
Puntos: 1
Problema eleccion multiple de select (json)

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
  1. <?php
  2. require_once("funciones.php");
  3. ?>
  4. <!doctype html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title></title>
  9. <script src="jquery-1.10.2.min.js"></script>
  10.  
  11. </head>
  12.  
  13. <body>
  14. <form style="width: 480px">
  15.     <fieldset>
  16.     <legend>Prueba</legend>
  17.     <label>Grupo:</label>
  18.         <select name="grupo" id="grupo">
  19.                 <option value="">- Seleccione un Grupo -</option>
  20.         <?php
  21.         $grupos = dameGrupo();
  22.        
  23.         foreach($grupos as $indice => $registro){
  24.             echo "<option value=".$registro['grupo'].">".$registro['grupo']."</option>";
  25.         }
  26.         ?>
  27.     </select>
  28.     <br><br>
  29.     <label>Seccion:</label>
  30.         <select name="seccion" id="seccion">
  31.                 <option value="">- primero seleccione un grupo -</option>
  32.    
  33.     </select>
  34.     <br><br>
  35.     <label>Denominacion:</label>
  36.         <select name="denominacion" id="denominacion">
  37.                 <option value="">- primero seleccione una seccion -</option>
  38.     </select>
  39.     </fieldset>
  40. </form>
  41. <hr>
Código Javascript:
Ver original
  1. <script>
  2. $("#grupo").on("change", buscarSecciones);
  3. $("#seccion").on("change", buscarDenominacion);
  4.  
  5. function buscarSecciones(){
  6.     $("#denominacion").html("<option value=''>- primero seleccione una seccion -</option>");
  7.     $grupo = $("#grupo").val();
  8.    
  9.     if($grupo == ""){
  10.             $("#seccion").html("<option value=''>- primero seleccione un grupo -</option>");
  11.     }
  12.     else {
  13.         $.ajax({
  14.             dataType: "json",
  15.             data: {"grupo": $grupo},
  16.             url:   'buscar.php',
  17.             type:  'post',
  18.             beforeSend: function(){
  19.                 //Lo que se hace antes de enviar el formulario
  20.                 },
  21.             success: function(respuesta){
  22.                 //lo que se si el destino devuelve algo
  23.                 $("#seccion").html(respuesta.html);
  24.             },
  25.             error:  function(xhr,err){
  26.                 alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\n \n responseText: "+xhr.responseText);
  27.             }
  28.         });
  29.     }
  30. }
  31. function buscarDenominaciones(){
  32.     $seccion = $("#seccion").val();
  33.    
  34.     $.ajax({
  35.         dataType: "json",
  36.         data: {"seccion": $seccion},
  37.         url:   'buscar.php',
  38.         type:  'post',
  39.         beforeSend: function(){
  40.             //Lo que se hace antes de enviar el formulario
  41.             },
  42.         success: function(respuesta){
  43.             //lo que se si el destino devuelve algo
  44.             $("#denominacion").html(respuesta.html);
  45.         },
  46.         error:  function(xhr,err){
  47.             alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\n \n responseText: "+xhr.responseText);
  48.         }
  49.     });
  50. }
  51.  
  52. </script>
</body>
</html>


buscar.php
Código PHP:
Ver original
  1. ?php
  2. require("funciones.php");
  3.  
  4. if(isset($_POST['grupo'])){
  5.    
  6.     $secciones = dameSeccion($_POST['grupo']);
  7.     $html = "<option value=''>- Seleccione una Seccion -</option>";
  8.     foreach($secciones as $indice => $registro){
  9.         $html .= "<option value='".$registro['seccion']."'>".$registro['seccion']."</option>";
  10.     }
  11.    
  12.     $respuesta = array("html"=>$html);
  13.     echo json_encode($respuesta);
  14. }
  15.  
  16. if(isset($_POST['seccion'])){
  17.    
  18.     $denominaciones= dameDenominacion($_POST['seccion']);
  19.    
  20.     $html = "<option value=''>- Seleccione una Denominacion -</option>";
  21.     foreach($denominaciones as $indice => $registro){
  22.         $html .= "<option value='".$registro['denominacion']."'>".$registro['denominacion']."</option>";
  23.     }
  24.    
  25.     $respuesta = array("html"=>$html);
  26.     echo json_encode($respuesta);
  27. }
  28.  
  29. ?>
funciones.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. /* Archivo para funciones */
  4.  
  5. function conectaBaseDatos(){
  6.     try{
  7.         $servidor = "localhost";
  8.         $puerto = "3306";
  9.         $basedatos = "cria";
  10.         $usuario = "rasty";
  11.         $contrasena = "rasty";
  12.    
  13.         $conexion = new PDO("mysql:host=$servidor;port=$puerto;dbname=$basedatos",
  14.                             $usuario,
  15.                             $contrasena,
  16.                             array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  17.        
  18.         $conexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  19.         return $conexion;
  20.     }
  21.     catch (PDOException $e){
  22.         die ("No se puede conectar a la base de datos". $e->getMessage());
  23.     }
  24. }
  25.  
  26. function dameGrupo(){
  27.     $resultado = false;
  28.     $consulta = "SELECT grupo FROM grupo";
  29.    
  30.     $conexion = conectaBaseDatos();
  31.     $sentencia = $conexion->prepare($consulta);
  32.    
  33.     try {
  34.         if(!$sentencia->execute()){
  35.             print_r($sentencia->errorInfo());
  36.         }
  37.         $resultado = $sentencia->fetchAll();
  38.         //$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
  39.         $sentencia->closeCursor();
  40.     }
  41.     catch(PDOException $e){
  42.         echo "Error al ejecutar la sentencia: \n";
  43.             print_r($e->getMessage());
  44.     }
  45.    
  46.     return $resultado;
  47. }
  48.  
  49. function dameSeccion($grupo = ''){
  50.     $resultado = false;
  51.     $consulta = "SELECT  * FROM seccion ";
  52.    
  53.     if($grupo != ''){
  54.         $consulta .= " WHERE grupo = :grupo";
  55.     }
  56.    
  57.     $conexion = conectaBaseDatos();
  58.     $sentencia = $conexion->prepare($consulta);
  59.     $sentencia->bindParam('grupo',$grupo);
  60.    
  61.     try {
  62.         if(!$sentencia->execute()){
  63.             print_r($sentencia->errorInfo());
  64.         }
  65.         $resultado = $sentencia->fetchAll();
  66.         $resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
  67.         $sentencia->closeCursor();
  68.     }
  69.     catch(PDOException $e){
  70.         echo "Error al ejecutar la sentencia: \n";
  71.             print_r($e->getMessage());
  72.     }
  73.    
  74.     return $resultado;
  75. }
  76.  
  77. function dameDenominancion($seccion = ''){
  78.     $resultado = false;
  79.     $consulta = "SELECT denominacion FROM denominacion";
  80.    
  81.     if($seccion != ''){
  82.         $consulta .= " WHERE seccion = :seccion";
  83.     }
  84.    
  85.     $conexion = conectaBaseDatos();
  86.     $sentencia = $conexion->prepare($consulta);
  87.     $sentencia->bindParam('seccion',$seccion);
  88.    
  89.     try {
  90.         if(!$sentencia->execute()){
  91.             print_r($sentencia->errorInfo());
  92.         }
  93.         $resultado = $sentencia->fetchAll();
  94.         //$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
  95.         $sentencia->closeCursor();
  96.     }
  97.     catch(PDOException $e){
  98.         echo "Error al ejecutar la sentencia: \n";
  99.             print_r($e->getMessage());
  100.     }
  101.    
  102.     return $resultado;
  103. }
  104.  
  105.  
  106. ?>


Saludos y Gracias
  #2 (permalink)  
Antiguo 12/11/2013, 07:09
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Problema eleccion multiple de select (json)

Pones 200 líneas de texto, dices que hay un error en un select múltiple y esperas a que alguien se lo lea línea a línea hasta que encuentre un fallo.
Especifica más. Elimina todo el HTML y PHP que no tenga nada que ver con el error.

Etiquetas: ajax, eleccion, formulario, funcion, html, javascript, js, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:48.