Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Combobox dependientes con PHP y Mysql

Estas en el tema de Combobox dependientes con PHP y Mysql en el foro de PHP en Foros del Web. Buena Tarde. Estoy intentando realizar 4 combobox en el cual el segundo depende de la elección del primer combo y el 4 dependa de la ...
  #1 (permalink)  
Antiguo 01/07/2013, 12:57
 
Fecha de Ingreso: julio-2013
Ubicación: Bogota
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Combobox dependientes con PHP y Mysql

Buena Tarde.

Estoy intentando realizar 4 combobox en el cual el segundo depende de la elección del primer combo y el 4 dependa de la selección del tercer combo:


Código PHP:
if (!empty($_POST['enviado'])){
   echo 
"Procesando formulario:<br>";
   echo 
"Recibido : ".$_POST['nombre']."<br>";
   echo 
"Recibido : ".$_POST['uid'];
   echo 
"Recibido : ".$_POST['facultad'];
   echo 
"Recibido : ".$_POST['salon'];

} else {
   
$conexion mysql_connect("localhost""root""") or die(mysql_error());
   
mysql_select_db("uscoid"$conexion) or die(mysql_error());
   echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
   echo 
"<select name=\"nombre\" onChange=\"this.form.submit()\" style=\"width: 150px\">\n";
   echo 
"<option value=\"\"> Seleccione un Usuario </option>\n";
   
$SQLconsulta_user="SELECT nombre FROM user";
   
$consulta_user mysql_query($SQLconsulta_user,$conexion) or die(mysql_error());
 
   While   (
$registro_user=mysql_fetch_assoc($consulta_user)){
      
$user=$_POST['nombre'];
      if (
$user == $registro_user['nombre']){
         echo 
"<option value=\"".$registro_user['nombre']."\" selected>".$registro_user['nombre']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_user['nombre']."\">".$registro_user['nombre']."</option>\n";
      }
    }
   echo 
"</select>\n\n";
   echo
"<br>";
   
mysql_free_result($consulta_user); 
   echo 
"<select name=\"uid\" style=\"width: 150px\">\n";
   if (!empty(
$user)){
       
$SQLconsulta_uid="SELECT uid FROM user WHERE nombre='$user'";
       
$consulta_uid mysql_query($SQLconsulta_uid,$conexion) or die(mysql_error());
       if (
mysql_num_rows($consulta_uid) != 0){
          While   (
$registro_uid=mysql_fetch_assoc($consulta_uid)){
            echo 
"<option value=\"".$registro_uid['uid']."\">".$registro_uid['uid']."</option>\n";
          }
        } else {
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {
        echo 
"<option value=\"\"> UID de Usuario </option>";
    }
    
mysql_free_result($consulta_uid);
    echo 
"</select>\n\n";
    echo
"<br>";
    
////////////////////////////////////////////////////////////////////
   
echo "<select name=\"facultades\" onChange=\"this.form.submit()\" style=\"width: 150px\">\n";
   echo 
"<option value=\"\"> Seleccione Facultad </option>\n";
   
$SQLconsulta_facu="SELECT * FROM facultades";
   
$consulta_facu mysql_query($SQLconsulta_facu,$conexion) or die(mysql_error());
   While   (
$registro_facu=mysql_fetch_assoc($consulta_facu)){
      
$id_facu=$_POST['facultad'];
      if (
$id_facu==$registro_facu['facultad']){
         echo 
"<option value=\"".$registro_facu['id']."\" selected>".$registro_facu['facultad']."</option>\n";
      } else {
        echo 
"<option value=\"".$registro_facu['id']."\">".$registro_facu['facultad']."</option>\n";
      }
    }
   echo 
"</select>\n\n";
   echo
"<br>";
   
mysql_free_result($consulta_facu); 
   echo 
"<select name=\"salon\" style=\"width: 150px\">\n";
   if (!empty(
$id_facu)){
       
$SQLconsulta_salon="SELECT salon FROM salones WHERE id_facultad='$id_facu'";
       
$consulta_salon mysql_query($SQLconsulta_salon,$conexion) or die(mysql_error());
       if (
mysql_num_rows($consulta_salon) != 0){
          While   (
$registro_salon=mysql_fetch_assoc($consulta_salon)){
            echo 
"<option value=\"".$registro_salon['id']."\">".$registro_salon['id_facultad']."</option>\n";
          }
        } else {
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {
        echo 
"<option value=\"\"> Seleccione Salon </option>";
    }
    
mysql_free_result($consulta_uid);
    echo 
"</select>\n\n";
    echo
"<br>";
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Guardar \" >\n\n";
    echo 
"</form>\n";

El primer combo contiene los nombres de todos los usuarios del sistema y al seleccionar uno se carga en el segundo combo un numero de identificacion unico perteneciente a ese usuario. En el tercer combo se cargan todos los nombres de las facultades y al seleccionar uno se cargan los salones pertenecientes a esa facultad. El problema que tengo es q solo hace la primera parte bien (el combo uno carga el segundo combo), el tercer combo me muestra todas las opciones pero al seleccionarla se vuelve a la opcion por defecto por lo que el combo 4 no se carga. Alguna sugerencia?
  #2 (permalink)  
Antiguo 01/07/2013, 13:06
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Combobox dependientes con PHP y Mysql

te sugiero ocupes ajax para hacer eso....
  #3 (permalink)  
Antiguo 01/07/2013, 13:13
 
Fecha de Ingreso: julio-2013
Ubicación: Bogota
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Combobox dependientes con PHP y Mysql

Gracias por la sugerencia, pero no manejo ajax y estoy trabajando toda la web en php y html, además debe haber alguna manera de hacerlo.
  #4 (permalink)  
Antiguo 01/07/2013, 13:30
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Combobox dependientes con PHP y Mysql

si lo hay nada mas que si lo haces con php puro sin duda deberas tener mucho cuidado de no perder las variables en cada envio de formulario
  #5 (permalink)  
Antiguo 01/07/2013, 15:13
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Combobox dependientes con PHP y Mysql

tema repetido, es la enésima consulta similar que he visto en las últimas semanas, busca en el foro y encontrarás links a ejemplos; y el uso de ajax es necesario si quieres evitar refrescar tu página o perder algún dato en el camino
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #6 (permalink)  
Antiguo 01/07/2013, 16:05
 
Fecha de Ingreso: julio-2013
Ubicación: Bogota
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Combobox dependientes con PHP y Mysql

Bueno pues nada encontre la solución a mi problema, solo hay que tener en cuenta que para el combo 1 y el combo 3 el nombre del select debe coincidir con la variable que se carga con POST:

Código PHP:
echo "<select name=\"facultades\" onChange=\"this.form.submit()\" style=\"width: 150px\">\n";
   echo 
"<option value=\"\"> Seleccione Facultad </option>\n";
   
$SQLconsulta_facu="SELECT * FROM facultades";
   
$consulta_facu mysql_query($SQLconsulta_facu,$conexion) or die(mysql_error());
   While   (
$registro_facu=mysql_fetch_assoc($consulta_facu)){
     
// $id_facu=$_POST['facultad']; En vez de facultad debe coincidir con el nombre del Select Name
      
$id_facu=$_POST['facultades']; // Esto soluciona el problema 

Última edición por bakuza05; 01/07/2013 a las 18:09

Etiquetas: combobox, dependientes, formulario, mysql, registro, select, sql, usuarios
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 16:55.