Foros del Web » Programando para Internet » Javascript »

Cambio Selects en funcion el uno del otro

Estas en el tema de Cambio Selects en funcion el uno del otro en el foro de Javascript en Foros del Web. no se si el titulo sera muy explicativo pero bueno al lio. Tengo una pagina en la cual quiero cargar un formulario con datos de ...
  #1 (permalink)  
Antiguo 21/03/2006, 01:34
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
Cambio Selects en funcion el uno del otro

no se si el titulo sera muy explicativo pero bueno al lio. Tengo una pagina en la cual quiero cargar un formulario con datos de empresas que hay en mi base de datos y que una vez clickee en una empresa en el otro select me salgan los empleados pertenecientes a esa empresa que tengo en mi BD. De momento solo estoy intentando conseguir que al clickear en el select principal me cambie el segundo select pero no lo consigo!!!!!!

<html>

<head>

<title>

FAQ-1: Selects

</title>
<script language="JavaScript">

function addOpt(oCntrl, iPos, sTxt, sVal){

var selOpcion=new Option(sTxt, sVal);

eval(oCntrl.options[iPos]=selOpcion);

}



function cambia(oCntrl){

while (oCntrl.length) oCntrl.remove(0);

switch (document.frm.pais.selectedIndex){

case 0:

addOpt(oCntrl, 0, "Ciudad de México", "0");

addOpt(oCntrl, 1, "Monterrey", "1");

addOpt(oCntrl, 2, "Guadalajara", "2");

break;

case 1:

addOpt(oCntrl, 0, "Madrid", "0");

addOpt(oCntrl, 1, "Barcelona", "1");

addOpt(oCntrl, 2, "San Sebastián", "2");

break;

case 2:

addOpt(oCntrl, 0, "Caracas", "0");

addOpt(oCntrl, 1, "Coro", "1");

addOpt(oCntrl, 2, "Maracay", "2");

addOpt(oCntrl, 3, "Valencia", "3");

break;

}

}

</script>

</head>

<body>

<script language="JavaScript">

var w = 400;

var h = 150;

</script>

<form name="frm">

Pais

<select name="empresa" onchange="cambia(document.frm.empresa)">

<?

$link=mysql_connect("localhost","root");
if(!$link){
die("Muerto");
}

$sql = "Select empresa from cuentas group by empresa";

$resultado = mysql_db_query("ados",$sql,$link);

if($j=mysql_fetch_array($resultado))

{
do{

echo("<option value=".$cont.">".$j[0]."</option>");

$cont=$cont+1;

}while($j=mysql_fetch_array($resultado));

}?>

</select>
<select name="usuarios">
<option value=1>----</option>
</select>

</form>

</body>

</html>

Como vereis las opciones del segundo select estan puestas por un ejemplo anterior!!

Gracias por la ayuda!!!
  #2 (permalink)  
Antiguo 21/03/2006, 02:13
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Utopiko, en las FAQs se listan las preguntas más frecuentes que hacen los usuarios. Es conveniente darles un vistazo, ya que la pregunta que tienes es justamente la número uno de todas ellas, jeje.

Checa las FAQs haciendo click aquí. Bienvenido a foros de web.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #3 (permalink)  
Antiguo 21/03/2006, 04:44
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
joe si es que soy medio tonto!!encima yo creo que es el mismo Faq del cual he cogido el ejemplo!!!Weno no pasa na un fallo lo tiene cualquiera saludos y gracias por la informamacion
  #4 (permalink)  
Antiguo 21/03/2006, 12:32
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
Joe ya he mirado la Faq pero no se porque no me funciona al cambiar...Yo creo que es porque al coger los datos desde la base de datos y es un numero de datos no estatico es decir en cada vez que lo consultemos el numero de argumentos cargados en el select va a ser diferente y el switch entonces no valdria por tener que darle un numero de valores a comprobar estatico. En fin lo que quiero que haga de momento el programa es que me cargue los datos en el primer select(conseguido) y luego que me cargue lo de las ciudades para ver si funciona o no!

No se si me habeis entendido pero un ejemplo seria este. La primera opcin es Ados en el Select pos kiero elegirla y que me salga "Ciudad de Mexico","Monterey" y "Guadalajara" en el segundo Select.

Muchas gracias!!!!!!1
  #5 (permalink)  
Antiguo 21/03/2006, 17:51
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa hice algo similar pero en categorias y articulos checalo

creo que la respuesta ya la tienes porque supongo que algun campo hace que se relacionen las empresas con empleados no?

bueno de todas mandera aqui te paso como hice el script, en mi caso fue seleccionar categorias y mostrar los articulos

este select es el que se carga despues de seleccionar antes uno enti caso el de empresas
function cambia(oCntrl,index)
{
tuSelect=document.getElementById(index);
tuSelect.length=0;
switch (eval("document.forms.formulario."+oCntrl+".select edIndex"))
{

//var miOpcion=document.forms[0].formulario.lista_categoria.selectedIndex;
<?
$caso=1;
$conexion =mysql_connect($host, $user_host,$pas_host) or die('Error al tratar de realizar la conexion al server');
mysql_select_db($base_host,$conexion ) or die('Error al seleccionar la bases de datos');
$result = mysql_query("SELECT ID_CATEGORIA,DESC_CATEGORIA FROM $INSUMOS_CATEGORIAS where DESC_CATEGORIA not in('Efectivo') order by ID_CATEGORIA asc", $conexion);
while ($row_insumos = mysql_fetch_row($result))
{
echo 'case '.$caso.':'."\n";
//buscamos sus articulos relacionados
$suposicion=0;
$resultarticulos = mysql_query("SELECT ID_ARTICULO,DESC_ARTICULO,ID_CATEGORIA,ID_PROVEEDO R,PRECIO_ARTICULO FROM $INSUMOS_ARTICULOS where ID_CATEGORIA='$row_insumos[0]' and MOSTRAR_ARTICULO='s' order by DESC_ARTICULO ASC", $conexion);
while ($row_articulos = mysql_fetch_row($resultarticulos))
{
//echo 'addOpt(oCntrl, '.$suposicion.', "'.$row_articulos[1].'", "'.$row_articulos[0].'");'."\n";
echo 'eval("document.forms.formulario."+index+".options['.$suposicion.']=new Option('."'".$row_articulos[1]."'".','."'".$row_articulos[0]."'".')");'."\n";
$suposicion++;
}
$caso++;
echo 'break;'."\n";

}
mysql_close($conexion);
?>

}
}

espero te sirva
saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 21/03/2006, 20:21
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Cita:
Yo creo que es porque al coger los datos desde la base de datos y es un numero de datos no estatico es decir en cada vez que lo consultemos el numero de argumentos cargados en el select va a ser diferente y el switch entonces no valdria por tener que darle un numero de valores a comprobar estatico.
Bueno, una vez que te sale con datos estáticos, para hacerlo con datos que provienen de una DB lo único que hay que hacer es generar el código Javascript con PHP, para que las opciones sean otras.

Lo que estarías haciendo, en realidad, sería precargar todos los datos en el navegador cliente. Si tú deseas que cuando mueves una selección se vaya y se consulte a tu base de datos, esto no será posible. Más bien, desde el inicio, tendrías que escribir el código html-javascript para que incluyera todas tus opciones de BD.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
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 08:12.