Foros del Web » Programando para Internet » Javascript »

Menu desplegable

Estas en el tema de Menu desplegable en el foro de Javascript en Foros del Web. No se si mi duda estará bien ubicada en este apartado porque no se si la solución esta en javascript. Mi problema está en que ...
  #1 (permalink)  
Antiguo 14/02/2007, 14:11
Avatar de Arwen215  
Fecha de Ingreso: enero-2007
Ubicación: Madrid
Mensajes: 57
Antigüedad: 17 años, 3 meses
Puntos: 3
Menu desplegable

No se si mi duda estará bien ubicada en este apartado porque no se si la solución esta en javascript.

Mi problema está en que estoy creando con html y php un formulario, entre otras cosas tengo dos cajas de opciones o menus despegables y me gustaria que segun la opcion que elija en el primer menu se cargaran los datos en el segundo. Por poner un ejemplo, el primer menu podria tener provincias y segun la provincia que eligieras en el segundo menu se cargaran los municipios de la misma.
Ademas tengo una duda y es que no se si hay posibilidad de cargar las opciones del menu a traves de una base de datos pero bueno, esto me resulta secundario porque siempre me queda la opcion de rellenarlo a pelo.

Muchas gracias de antemano y espero puedan ayudarme.
  #2 (permalink)  
Antiguo 15/02/2007, 12:56
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 22 años
Puntos: 4
Re: Menu desplegable

Hola

Bueno para hacer un combo doble en javascript puedes utilizar este codigo:
Código:
<form name="doublecombo">
<p><select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option>Technology Sites</option>
<option>News Sites</option>
<option>Search Engines</option>
</select>
<select name="stage2" size="1">
<option value="http://javascriptkit.com">JavaScript Kit</option>
<option value="http://www.news.com">News.com</option>
<option value="http://www.wired.com">Wired News</option>
</select>

<input type="button" name="test" value="Go!"
onClick="go()">
</p>

<script>
<!--

/*
Double Combo Script Credit
By JavaScript Kit (www.javascriptkit.com)
Over 200+ free JavaScripts here!
*/

var groups=document.doublecombo.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("JavaScript Kit","http://javascriptkit.com")
group[0][1]=new Option("News.com","http://www.news.com")
group[0][2]=new Option("Wired News","http://www.wired.com")

group[1][0]=new Option("CNN","http://www.cnn.com")
group[1][1]=new Option("ABC News","http://www.abcnews.com")

group[2][0]=new Option("Hotbot","http://www.hotbot.com")
group[2][1]=new Option("Infoseek","http://www.infoseek.com")
group[2][2]=new Option("Excite","http://www.excite.com")
group[2][3]=new Option("Lycos","http://www.lycos.com")

var temp=document.doublecombo.stage2

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}

function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>

</form>

<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
Kit</a></font></p>
Solo ten cuidado en en forma que manejas los arreglos y todo resuelto.

Con la otra pregunta que tienes si se puede llenar con uan consulta a la db, seria mas o menos asi:
Código PHP:
<select name="listado" size="1">
<?php
// Yo utilizo PEAR y vamos a suponer que la conexion la tengo un varible $db, tu puedes sustituirlo por tu fomra de conectarte
$res $db->query("select * from mi tabla")
while(
$row $res->fetchRow(DB_FETCHMODE_OBJECT))
{
echo 
"<option value=\"".$row->valor."\">".$row->nombre."</option>\n";
}
</
select>
De esta forma tendras un listado dinamico llenado de una tabla.

Espero te sirva.
Saludos,
Jars
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 22:19.