Foros del Web » Programando para Internet » Javascript »

switch case

Estas en el tema de switch case en el foro de Javascript en Foros del Web. No se si la pregunta sea adecuada para este foro. El caso es que tengo un formulario donde una lista menu presenta una serie de ...
  #1 (permalink)  
Antiguo 25/02/2004, 12:48
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
switch case

No se si la pregunta sea adecuada para este foro. El caso es que tengo un formulario donde una lista menu presenta una serie de opciones con el listado de todos los paises. Lo que quiero es que cuando el usuario haga una vista preliminar del formulario lleno se vea el pais que previamente ha elegido.
1.-Son 102 paises y no puedo usar if. No seria conveniente!
2.-Cada país tiene un valor que va del 1 al 102, pero no se como debería usar el switch case de javascript.

Si tienen alguna propuesta les agradezco!

Nota: el pase de información entre páginas corre perfecto con ASP, pero no se como descargarlo en una variable y luego usar el switch case de javascript para poder comparar el valor y mostrar a que país corresponde.

Se entiende???
  #2 (permalink)  
Antiguo 25/02/2004, 12:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Isaac Mañe:

Cuando tienes un select seleccionado (una opción), tienes 3 posibilidades...

La primera y más fácil es consultar el value del mismo select, que se corresponde con el value de la opción seleccionada.

La segunda es consultar el índice de la opción seleccionada (selectedIndex)...

Y la tercera es consultar los valores del array de opciones, tanto el valor (value) como el texto (text)

Para el siguiente ejemplo:

<form name=ejemplo ...>
<select name=prueba>
<option value="" >Seleccione un valor</option>
<option value="1" >valor 1</option>
<option value="2" >valor 2</option>
</select>
</form>

El valor seleccionado sería: document.forms.ejemplo.prueba.value
el índice seleccionado sería: document.forms.ejemplo.prueba.selectedIndex
y el texto mediante el array de opciones:
document.forms.ejemplo.prueba.options[document.forms.ejemplo.prueba.selectedIndex].text

Saludos
  #3 (permalink)  
Antiguo 25/02/2004, 13:56
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
De acuerdo Hmmmm mas perdido que Adan en el día de las Madres

Finalmente y despues de muchos intentos no se que hacer con el document.forms.ejemplo.prueba.options[document.forms.ejemplo.prueba.selectedIndex].text

Donde lo coloco en la página que recoge o en la que lo envia?
Pero si es en la que lo envia no deberia asignarlo auna variable oculta para recogerlo en la siguiente???

Help me please!!!
  #4 (permalink)  
Antiguo 25/02/2004, 14:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Vamos a suponer que tienes un formulario para la vista previa:

<form name="vistaPrevia" action="vistaPrevia.html" method="get" target="ventana" unsubmit="window.open('', 'ventana', '')">
<select name=prueba>
<option value="" >Seleccione un valor</option>
<option value="1" >valor 1</option>
<option value="2" >valor 2</option>
</select>
<input type="submit" value="vista preliminar" />
</form>

Con eso envía la variable prueba con el valor que esté seleccionado (lo puedes ver en la linea de dirección)

Si quieres usar un chequeo puedes aprovechar el evento onsubmit para comprobaciones:

<form ... onsubmit="chequeo(this.form)" >
Si quieres usar el text del option (a mi me gusta más usar el value directamente) tendrías que crear un campo oculto dentro del formulario...

<input type="hidden" value="" name="valor" />

y en el head poner un tag script con un código como este:

function chequeo(dato) {
if (dato.prueba.value == "") return false; // el form no se envía.
else {
// primero asignamos el valor...
dato.valor.value = dato.prueba.options[dato.prueba.selectedIndex].text;
// e inhabilitamos el select para que no pase ningún valor:
dato.prueba.disabled = true;
// por último salimos
return true;
}

Si no te sirve, dime como llevas el código y lo apañamos mejor.

Saludos
  #5 (permalink)  
Antiguo 25/02/2004, 14:50
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta

Tengo un form:
<form action="Planes3.asp" method="post" name="form">

Tengo un select
<select name="Pais">
<option value="1">Afganistan</option>
<option value="2">Albania</option>
etc etc etc

En la otra página Planes3.asp recogo las variables y valido que no estén en blanco.

No me importa asignarlo a una variable oculta pero no se donde hacerlo. Imagino que con un onchange hago ejecutar una función en el select que me permita asignar con el selectedIndex el texto a una variable y luego la asigno a una oculta??
  #6 (permalink)  
Antiguo 25/02/2004, 15:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Como pones los países... ¿a mano?, ¿con un array javascript?, ¿con una consulta a una bd?...
¿Qué uso le das al value de las opciones?...

Si pusieras así:

<select name="Pais">
<option value="Afganistan">Afganistan</option>
<option value="Albania">Albania</option>
etc etc etc

... se enviarían los datos directamente, si el value te sirviera, sería fácil ponerlo en un campo oculto... onsubmit="campoOculto = elSelect.selectedIndex" (simplificando)

Saludos
  #7 (permalink)  
Antiguo 25/02/2004, 20:14
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
De acuerdo De antemano gracias!!!

Cita:
Mensaje Original por caricatos
Hola otra vez:

Como pones los países... ¿a mano?, ¿con un array javascript?, ¿con una consulta a una bd?...
¿Qué uso le das al value de las opciones?...

Si pusieras así:

<select name="Pais">
<option value="Afganistan">Afganistan</option>
<option value="Albania">Albania</option>
etc etc etc

... se enviarían los datos directamente, si el value te sirviera, sería fácil ponerlo en un campo oculto... onsubmit="campoOculto = elSelect.selectedIndex" (simplificando)

Saludos
1.-Estoy claro que usando el value para colocar los paises me funciona pero de calle que no puedo hacerlo porque finalmente cuando el usuario ha concluido el proceso toda la data va a una BD! ...y me han dicho que se pone grande. De hecho la información que tendrá la BD es netamente numérica practicamente de un solo dígito por campo.

2.-En el form tengo un select con una lista a mano de todos los paises que hay sobre esta tierra.

3.-Las respuestas que me has dado estan casi casi por dar sus frutos porque es eso exactamente lo que quiero. Sacar del índice el texto correspondiente al país seleccionado, guardarlo en un campo oculto y listo... ...de lo demás me encargo yo con las loqueras de ASP que si request que si lo otro etc etc etc...
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 17:01.