Foros del Web » Programando para Internet » Javascript »

Problema select 3 niveles

Estas en el tema de Problema select 3 niveles en el foro de Javascript en Foros del Web. Buenas, otra vez por aqui... Tengo un problemon con unos select de tres niveles... todo funciona perfectamente excepto un pequeño detalle pero muy importante, a ...
  #1 (permalink)  
Antiguo 26/02/2012, 06:37
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 3
Problema select 3 niveles

Buenas, otra vez por aqui...

Tengo un problemon con unos select de tres niveles... todo funciona perfectamente excepto un pequeño detalle pero muy importante, a ver como puedo explicar esto sin liarlo demasiado.

Tres select
Marcas
Modelos
Versiones

Primer select (seleccionas la marca)

Segundo select, te muestra los modelos que corresponden a la marca seleccionada. (seleccionas el modelo)

Aqui esta el problema
Tercer select, te muestra las versiones del modelo seleccionado pero tambien muestra los modelos que no corresponden a la marca selecciona en el primer select.

Dejo el php que creo que es donde esta el error...
Código PHP:
Ver original
  1. $listadoSelects=array(
  2. "Marcas"=>"marcas",
  3. "Modelos"=>"modelos",
  4. "Versiones"=>"versiones"
  5. );
  6.  
  7. function validaSelect($selectDestino)
  8. {
  9.     // Se valida que el select enviado via GET exista
  10.     global $listadoSelects;
  11.     if(isset($listadoSelects[$selectDestino])) return true;
  12.     else return false;
  13. }
  14.  
  15. function validaOpcion($opcionSeleccionada)
  16. {
  17.     // Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
  18.     if(is_numeric($opcionSeleccionada)) return true;
  19.     else return true;
  20. }
  21.  
  22. $selectDestino=$_GET["select"];
  23. $opcionSeleccionada=$_GET["opcion"];
  24. if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
  25. {
  26.    
  27.         $tabla=$listadoSelects[$selectDestino];
  28.         if($tabla=='modelos'){
  29.                 $consulta=mysql_query("SELECT modelo, descripcion FROM $tabla WHERE marca='$opcionSeleccionada' ORDER BY descripcion ASC") or die(mysql_error());      
  30.                 // Comienzo a imprimir el select
  31.                 echo "<select name='".$selectDestino."' id='".$selectDestino."' class='selectForm' onChange='cargaContenido(this.id)'>";
  32.                 echo "<option value='0'>Selecciona una opcion</option>";
  33.                 while($registro=mysql_fetch_row($consulta))
  34.                 {
  35.                     // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
  36.                     $registro[1]=htmlentities($registro[1]);
  37.                     // Imprimo las opciones del select
  38.                     echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
  39.                 }          
  40.                 echo "</select>";          
  41.         } elseif ($tabla=='versiones'){
  42.             $consulta=mysql_query("SELECT version, nombre FROM $tabla WHERE modelo='$opcionSeleccionada' ORDER BY nombre ASC") or die(mysql_error());
  43.             // Comienzo a imprimir el select
  44.             echo "<select name='".$selectDestino."' id='".$selectDestino."' class='selectForm' onChange='cargaContenido(this.id)'>";
  45.             echo "<option value='0'>Selecciona una opcion</option>";
  46.             while($registro=mysql_fetch_row($consulta))
  47.             {
  48.                 // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
  49.                 $registro[1]=htmlentities($registro[1]);
  50.                 // Imprimo las opciones del select
  51.                 echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
  52.             }          
  53.             echo "</select>";
  54.         }  
  55. }
  56. ?>
  #2 (permalink)  
Antiguo 26/02/2012, 08:15
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Problema select 3 niveles

despues de darle muchas.. muchas vueltas ya lo he solucionado... antes de hacer la consulta del tercer select habia que hacer una consulta para saber la marca que viene con el modelo seleccionado por el usuario... una vez se tiene la marca y el modelo el problema esta resuelto....

Etiquetas: funcion, html, niveles, 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 23:02.