Foros del Web » Programando para Internet » Javascript »

Arrays en tres dimensiones

Estas en el tema de Arrays en tres dimensiones en el foro de Javascript en Foros del Web. Hola! Hace tiempo que leo el foro pero es la primera vez que escribo y ya van tres intentos porque cuando uso teclas de atajo ...
  #1 (permalink)  
Antiguo 03/02/2007, 03:35
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Arrays en tres dimensiones

Hola!

Hace tiempo que leo el foro pero es la primera vez que escribo y ya van tres intentos porque cuando uso teclas de atajo para los acentos me cancela el mensaje asi que disculpen que no los ponga.

Estuve mirando la FAQ #2 -Selects (no me deja poner el enlace, sorry) y pienso que podria adaptarse a lo que necesito pero no se comooo!!! Intentos fallidos:

1. Como hacer para utilizar tres listas desplegables en lugar de dos? Ejemplo: pais, provincia, ciudad.

2. Me interesa invertir el orden, o sea.. es posible que una persona elija una ciudad y automaticamente se completen provincia y pais?

3. Como hago para que funcione el script si la primera opcion de la primera lista es un campo vacio? es esta la forma para obligar al usuario a elegir una opcion al validar luego el formulario?

A estas alturas ya se dieron cuenta que recien empiezo con esto y se que pido mucho pero si alguien pudiera comentarme el codigo para poder entenderlo bien yo intentaria arreglarme... Muchas gracias por anticipado,

Alegna
  #2 (permalink)  
Antiguo 03/02/2007, 13:44
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Arrays en tres dimensiones

Te paso un enlace:http://www.htmlweb.net/webscript/for...s_3_texto.html
  #3 (permalink)  
Antiguo 06/02/2007, 09:34
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Arrays en tres dimensiones

Hola:

Gracias Panino por el enlace Me costo bastante modificarlo a gusto, es que soy un poco lenta... Quedo asi:

Cita:
<html>
<head>
<title>Ejemplo 2</title>
<!-- Definicion de estilo para los combos, para determinar un ancho fijo -->
<style type="text/css">
select{width: 200px;}
</style>
<script language="JavaScript" type="text/javascript">
/**
* variable global que almacena la opcion seleccionada en el COMBO 1
*/
var primerCombo=0;
/**
/* funcion principal COMBO 1 */

function combo()
{
/**
* Al seleccionar alguna opcion del COMBO 1 >>>
*/
if(primerCombo!=0)
{
/**
* cuando el COMBO 1 = Opcion 1 => COMBO 2 = 0 (cero)
*/
if(document.forms.form1.menu1.selectedIndex==0)
{
document.forms.form2.menu2.options[0].value="0";
document.forms.form2.menu2.options[0].text=" ";
document.forms.form2.menu2.length=1;
}
/**
* en otro caso => COMBO 3 = 0 (cero) y COMBO 2 = valor predeterminado
*/
document.forms.form2.menu2.selectedIndex=0;
document.forms.form3.menu3.options[0].value="0";
document.forms.form3.menu3.options[0].text=" ";
document.forms.form3.menu3.length=1;
}
/**
* al seleccionar Opcion 2, 3, etc... => se llama a la funcion correspondiente
*/
var indice=document.forms.form1.menu1.selectedIndex;
if(indice==1) menu1(); /*Argentina*/
if(indice==2) menu2(); /*Espan~a*/
if(indice==3) menu3(); /*Italia*/
}
/**
/* funcion principal COMBO 2 */
function combo2()
{
var indice2=document.forms.form2.menu2.selectedIndex;
if(indice2==0) submenu0();
if(indice2==1) submenu1(); /*funcion COMBO 3 cuando < COMBO 2 = Opcion 1*/
if(indice2==2) submenu2(); /*funcion COMBO 3 cuando < COMBO 2 = Opcion 2*/
if(indice2==3) submenu3(); /*funcion COMBO 3 cuando < COMBO 2 = Opcion 3*/
}
/**
* opciones del COMBO 2 cuando < COMBO 1 = Opcion 1: ARGENTINA
*/
function menu1()
{
primerCombo=1;
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("11 Buenos Aires","1-1"); /*11*/
sub2=new Option("12 Mendoza","1-2"); /*12*/
sub3=new Option("13 Tucuman","1-3"); /*13*/
document.forms.form2.menu2.options[0]=sub0;
document.forms.form2.menu2.options[1]=sub1;
document.forms.form2.menu2.options[2]=sub2;
document.forms.form2.menu2.options[3]=sub3;
}
/**
* opciones del COMBO 2 cuando < COMBO 1 = Opcion 2: ESPANIA
*/
function menu2()
{
primerCombo=2;
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("21 Cadiz","2-1"); /*21*/
sub2=new Option("22 Ourense","2-2"); /*22*/
document.forms.form2.menu2.options[0]=sub0;
document.forms.form2.menu2.options[1]=sub1;
document.forms.form2.menu2.options[2]=sub2;
}
/**
* opciones del COMBO 2 cuando < COMBO 1 = Opcion 3: ITALIA
*/
function menu3()
{
primerCombo=3;
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("31 Genova","2-1"); /*31*/
sub2=new Option("32 Palermo","2-2"); /*32*/
document.forms.form2.menu2.options[0]=sub0;
document.forms.form2.menu2.options[1]=sub1;
document.forms.form2.menu2.options[2]=sub2;
}
/**
* opciones del COMBO 3:
* despues de haber hecho una seleccion anterior > pone a cero el COMBO 3
*/
function submenu0()
{
document.forms.form3.menu3.options[0].value="0";
document.forms.form3.menu3.options[0].text=" ";
document.forms.form3.menu3.length=1;
}
/**
* funcion COMBO 3 cuando < COMBO 2 = Opcion 1
*/
function submenu1()
{
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 1 (Argentina)
* < COMBO 2 = Opcion 1 (Buenos Aires)
*/
if(primerCombo==1)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("111 Adolfo Alsina","1-1-1"); /*111*/
sub2=new Option("112 Trenque Lauquen","1-1-2"); /*111*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 2 (Espania)
* < COMBO 2 = Opcion 1 (Cadiz)
*/
if(primerCombo==2)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("211 Algodonales","2-1-1"); /*211*/
sub2=new Option("212 Villamartin","2-1-2"); /*212*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 3 (Italia)
* < COMBO 2 = Opcion 1 (Genova)
*/
if(primerCombo==3)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("311 Campo Ligure","3-1-1"); /*311*/
sub2=new Option("312 Lavagna","3-1-2"); /*312*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
}
/**
* funcion COMBO 3 cuando < COMBO 2 = Opcion 2
*/
function submenu2()
{
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 1 (Argentina)
* < COMBO 2 = Opcion 2 (Mendoza)
*/
if(primerCombo==1)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("121 Las Heras","1-2-1"); /*121*/
sub2=new Option("122 San Rafael","1-2-2"); /*122*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 2 (Espania)
* < COMBO 2 = Opcion 2 (Ourense)
*/
if(primerCombo==2)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("221 Carballeda de Avia","2-2-1"); /*221*/
sub2=new Option("222 Monterrey","2-2-2"); /*222*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 3 (Italia)
* < COMBO 2 = Opcion 2 (Palermo)
*/
if(primerCombo==3)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("321 Borgetto","3-2-1"); /*321*/
sub2=new Option("322 Sciara","3-2-2"); /*322*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
}
/**
* funcion COMBO 3 cuando < COMBO 2 = Opcion 3
*/
function submenu3()
{
/**
* Para COMBO 3 cuando:
* < COMBO 1 = Opcion 1 (Argentina)
* < COMBO 2 = Opcion 3 (Tucuman)
*/
if(primerCombo==1)
{
sub0=new Option("seleccione...","sub0","defauldSelected");
sub1=new Option("131 Monteros","1-3-1"); /*131*/
sub2=new Option("132 Tafi del Valle","1-3-2"); /*132*/
document.forms.form3.menu3.options[0]=sub0;
document.forms.form3.menu3.options[1]=sub1;
document.forms.form3.menu3.options[2]=sub2;
}
}
</script>
</head>
<body>
<table align="center">
<tr>
<td width="150">
<form name="form1">
<select name="menu1" onChange="combo()">
<option value="opcion0">
<option value="opcion1">1 Argentina
<option value="opcion2">2 Espa&ntilde;a
<option value="opcion3">3 Italia
</select>
</form>
</td>
<td width="150">
<form name="form2">
<select name="menu2" onChange="combo2()">
<option value="opcion0">
</select>
</form>
</td>
<td>
<form name="form3">
<select name="menu3">
<option value="opcion0">
</select>
</form>
</td>
</tr>
</table>
</body>
</html>
No entiendo el objeto de lo marcado en rojo en la linea:
sub0=new Option("seleccione...","sub0","defauldSelected"); pero lo deje como estaba en el original...
Tal como esta funciona en IE y Firefox. Seguramente habra mil maneras de hacerlo mejor pero yo solo pude llegar hasta aqui Por lo tanto, bienvenidas sean correcciones y comentarios de los maestros del foro. Gracias nuevamente.

Alegna
  #4 (permalink)  
Antiguo 09/02/2007, 06:16
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Desacuerdo Re: Arrays en tres dimensiones - ERROR

Hola:

Sigo trabajando en este tema y me arroja un error que no logro ver donde esta. Cuando luego de haber elegido las opciones en cada una de las listas quiero volver sobre otra de la primer caja, si no refresco la pagina, se mezcla todo!!!

No puedo pasar el codigo que adapte porque supera el limite de caracteres permitido en el foro, pero es muy parecido al de mi mensaje anterior. El original que me paso Panino tenia solo dos opciones en cada una de las cajas. Logicamente si necesito alternativas para provincias y ciudades el mio va a variar considerablemente. O sera que predetermine la opcion [0] de todas las cajas como campo vacio?

Hace horas que estoy con esto y cambie tantas cosas que estoy completamente confundida. Desde ya, gracias por la ayuda que puedan brindarme.

Alegna
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 11:31.