Foros del Web » Programando para Internet » Javascript »

select que cambia al elegir una opcion en otro select

Estas en el tema de select que cambia al elegir una opcion en otro select en el foro de Javascript en Foros del Web. Hola a todos, Mi problema es bastante común (o eso creo). El problema que tengo es el siguiente: tengo una base de datos en la ...
  #1 (permalink)  
Antiguo 21/10/2006, 11:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 16
Antigüedad: 17 años, 8 meses
Puntos: 0
select que cambia al elegir una opcion en otro select

Hola a todos,

Mi problema es bastante común (o eso creo). El problema que tengo es el siguiente: tengo una base de datos en la que se van añadiendo empresas, y cada empresa puede tener varios tutores ( tambien de numero variable)
Me gustaria ke al seleccionar una empresa en un select, en otro me mostrase los tutores de esa empresa. Tengo una especie de funcion para hacerlo, el problema es ke no se como pasarle los datos a la funcion ni como recogerlos:

Código:
	
<script type="text/javaScript">

function cambia_tutor_empresa(¿?¿?) {

      ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿?????????????????????????

    //tomo el valor del select de la empresa elegida
    var empresa
    empresa = document.inserta_practicas.Nombre_empresa[document.inserta_practicas.Nombre_empresa.selectedIndex].value
    //miro a ver si el empresa está definido
    if (empresa != 0) {
       //si estaba definido, entonces coloco las opciones de la tutor_emp correspondiente.
       //selecciono el array de tutor_emp adecuado
       mis_tutores=¿?¿?¿?¿?¿?¿?¿
       //calculo el numero de provincias
       num_tutores = mis_tutores.length
       //marco el número de provincias en el select
       document.inserta_practicas.tutor_emp.length = num_tutores
       //para cada tutor_emp del array, la introduzco en el select
       for(i=0;i<num_tutores;i++){
          document.inserta_practicas.tutor_emp.options[i].value=mis_tutores[i]
          document.inserta_practicas.tutor_emp.options[i].text=mis_tutores[i]
       }
    }else{
       //si no había tutor_emp seleccionada, elimino las provincias del select
       document.inserta_practicas.tutor_emp.length = 1
       //coloco un guión en la única opción que he dejado
       document.inserta_practicas.tutor_emp.options[0].value = "-"
       document.inserta_practicas.tutor_emp.options[0].text = "-"
    }
    //marco como seleccionada la opción primera de tutor_emp
    document.inserta_practicas.tutor_emp.options[0].selected = true 

}

</script>
que creeis ke deberia pasarle? Un array de arrays creado desde php con la informacion de la base de datos? es decir, algo de este estilo:
Código:
array(nombres_empresa5(pepe,maria).nombres_empresa9(carlos, manolo, luis))
Es que otra cosa no se me ocurre . Ademas tengo el problema añadido de que en el select de las empresas, el value es el identificador en la base de datos (no van por orden, 1,2,...) Asi ke tampoco se como asociar cada array con cada empresa

me podeis ayudar??? estoy mas perdida ke un pulpo en un garaje

Gracias a todos hermosos
  #2 (permalink)  
Antiguo 23/10/2006, 12:34
cmp
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 20
Antigüedad: 20 años, 2 meses
Puntos: 0
Combinando PHP y javascript

Esto yo lo resuelvo usando PHP y va en 2 partes:
1° Creo los arreglos para el valor, la descripción y el campo que hará la diferencia en el llenado del combo (en mi caso descripcion=valor) y los lleno
$VSarregloTemaD=array();
$VSarregloTemaCat=array(); (este es el dato que va a determinar que dato vas a poner en el combo)
$sQTema="SELECT DISTINCT(tema),categoria FROM tratado WHERE tema NOT LIKE '%/%' AND baja_logica='' ORDER BY tema";
$catalogoTema=$conexion->EjecutaQuery($sQTema,$db);
$count=0;
while($filas3=mysql_fetch_array($catalogoTema))
{
$VSarregloTemaD[$count]=$filas3["tema"];
$VSarregloTemaCat[$count]=$filas3["categoria"];
$count++;
}

2° Creo el combo
<SELECT name="cboTema">
<OPTION value='<?PHP Echo $cboCategoriaC; ?>'><?PHP Echo $txtDescripcionTC; ?></OPTION>
</SELECT>
y en el combo que va a determinar el cambio, llamo a la siguiente función
function comboenlazado()
{
var valorCategoria=document.frmConsulta.cboCategoria.v alue;
var contador=1;
<?PHP
$contadorarreglo=0;
while($contadorarreglo<count($VSarregloTemaD))
{?>
alert(valorCategoria +' - <?PHP echo trim($VSarregloTemaCat[$contadorarreglo]);?>');
if(valorCategoria=='<?PHP echo trim($VSarregloTemaCat[$contadorarreglo]);?>')
{ document.frmConsulta.cboTema.options[contador]=new Option('<?PHP echo $VSarregloTemaD[$contadorarreglo]; ?>','<?PHP echo $VSarregloTemaD[$contadorarreglo]; ?>');
contador++;
<?PHP $contadorarreglo++; ?>
}
else
{
document.frmConsulta.cboTema.options[contador]=new Option('','');
}
<?PHP
}
?>
}
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 15:28.