Foros del Web » Programando para Internet » PHP »

Seleccion multiple.

Estas en el tema de Seleccion multiple. en el foro de PHP en Foros del Web. Tengo que hacer una selección múltiple con consultas a bases de datos, donde por ejemplo: Empresa Sucursal Área Usuario ABC SANTIAGO INFORMATICA LUIS DEF CHILLAN ...
  #1 (permalink)  
Antiguo 19/06/2006, 11:26
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
Seleccion multiple.

Tengo que hacer una selección múltiple con consultas a bases de datos, donde por ejemplo:

Empresa Sucursal Área Usuario
ABC SANTIAGO INFORMATICA LUIS
DEF CHILLAN INFORMATICA PEDRO
ABC CONCEPCION ADMINISTRACION MIGUEL
ABC CALAMA ABASTECIMIENTO LUISA


Lo que deseo es hacer una primera selección donde muestre las empresas: ABC y DEF una vez seleccionada mostrar sólo las sucursales asociadas a la empresa ABC. Una vez seleccionada la sucursal mostrar solo las áreas asociadas, una vez seleccionada el área mostrar solo los usuarios asociadas al área para así poder asignarle un requerimiento.

Espero haberme explicado:

Bueno lo que tengo desarrollado es lo siguiente :

<?
include("../config.php");
echo "<td width=68%><font face=Verdana, Arial, Helvetica, sans-serif size=2>
<select name='empresa' size=1>
<option value='0' selected>Seleccione Empresa</option>";
$sql="select * from empresa order by nombre_empresa asc";
$resultado=mysql_query($sql,$conectar) or die(mysql_error());
while($registro=mysql_fetch_array($resultado))
{
$num_e=$registro['id_empresa'];
$empresa=$registro['nombre_empresa'];
echo "<option value='$num_e'>$empresa</option>";
}
echo"</select></font></td></tr>";
echo "<tr><td width=32% bgcolor=006600>
<div align=right><font color=FFFFFF size=1><b><font face=Verdana, Arial, Helvetica, sans-serif>Sucursal
</font></b></font></div>
</td>
<td width=68%><font face=Verdana, Arial, Helvetica, sans-serif size=2>
<select name='sucursal' size=1>
<option value='0' selected>Seleccione Sucursal</option>";
$sl="select * from sucursal where id_empresa=$num_e order by nombre_sucursal asc";
$resul=mysql_query($sl,$conectar) or die(mysql_error());
while($reg=mysql_fetch_array($resul))
{
$num_s=$reg['id_sucursal'];
$sucursal=$reg['nombre_sucursal'];
echo "<option value='$num_s'>$sucursal</option>";
}
echo"</select></font></td></tr>";
echo "<tr><td width=32% bgcolor=006600>
<div align=right><font color=FFFFFF size=1><b><font face=Verdana, Arial, Helvetica, sans-serif>Area
</font></b></font></div>
</td>
<td width=68%><font face=Verdana, Arial, Helvetica, sans-serif size=2>
<select name='area' size=1>
<option value='0' selected>Seleccione Area</option>";
$sll="select * from area where id_empresa=$num_e order by nombre_area asc";
$res=mysql_query($sll,$conectar) or die(mysql_error());
while($regi=mysql_fetch_array($res))
{
$num_a=$regi['id_area'];
$area=$regi['nombre_area'];
echo "<option value='$num_a'>$area</option>";
}
echo"</select></font></td></tr>";
?>

Pero esto no cumple con lo que requiero,
¿Alguna idea de cómo desarrollarlo?.
¿Tengo que aplicar selección previa con un botón?
Desde ya muchas gracias por sus respuestas……….
Germán Herrera ([email protected]).
  #2 (permalink)  
Antiguo 19/06/2006, 18:35
okram
Invitado
 
Mensajes: n/a
Puntos:
Bueno, lo que t entendi es que al seleccionar un elemento de la primera lista, se coloquen en una segunda lista las sucursales correspondientes, asi con las ares y usuarios... En tal caso, la solucion es javascript, ya que si ya has imprimido contenido html en el explorador, sera porque php ha terminado de ejecutarse... No domino mucho el javascript, pero puedes preguntar en los foros de Javascript

El unico papel que PHP tendria aqui es imprimir TODOS los datos, y al decir TODOS me refiero a eso, a TODOS... Una vez que todos los datos han sido mandados como codigo al explorador, entra en juego el JS, que ira creando las listas en funcion de los datos seleccionados....

Una buena opcion es AJAX, que te permite hacer lo que deseas, tambien puedes preguntar en sus respectivos foros

Salu2
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 21:39.