Foros del Web » Programando para Internet » Javascript »

Variable o Arreglo

Estas en el tema de Variable o Arreglo en el foro de Javascript en Foros del Web. Saludos, estoy aprendiendo a usar JavaScript para hacer algunas cosas más sencillas en mi web, pero estoy teniendo problemas y quisiera solicitar apoyo. esta es ...
  #1 (permalink)  
Antiguo 26/06/2007, 15:36
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 10 meses
Puntos: 1
Variable o Arreglo

Saludos, estoy aprendiendo a usar JavaScript para hacer algunas cosas más sencillas en mi web, pero estoy teniendo problemas y quisiera solicitar apoyo.

esta es la web en la que estoy trabajando.

Función especifica:
Código:
<SCRIPT LANGUAGE="JavaScript"><!--
function change(what) {
    value = what.options[what.selectedIndex].value;
	if (value = 1 ) {value = 'imagenes/imagen01.gif'; alert(value);}
	if (value = 2 ) {value = 'imagenes/imagen02.gif'; alert(value);}
	if (value = 3 ) {value = 'imagenes/imagen03.gif'; alert(value);}
	if (value = 4 ) {value = 'imagenes/imagen04.gif'; alert(value);}
	if (value = 5 ) {value = 'imagenes/imagen05.gif'; alert(value);}
    if (value != '')
        if (document.images)
            document.images['test'].src = value;
		alert (value);
}
//--></SCRIPT>
La función se alimenta de:

Código:
<select name="select" onChange="change(this)">
    <option value="1">Mesa en O</option>

    <option value="2">Escuela</option>
    <option value="3">Escuela en V</option>
    <option value="4">Imperial</option>
    <option value="5">Mesa en U</option>
    
  </select>
La idea info de ese select alimenta una base de datos que tengo, y el select muestra imagenes de las que guardo el path en la base de datos, al cambiar el elemento del select.

(Los alert son para darme idea de lo que pasa).

El error que me esta mostrando es que cada ves que selecciono un elemento, toma el valor uno por uno de cada elemento y no tengo ni idea de por que, alguna sugerencia?

Gracias...

toy perdido con esto XD
  #2 (permalink)  
Antiguo 26/06/2007, 17:13
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
Re: Variable o Arreglo

Hola:

En principio no veo ningún problema, excepto que en las condicionales if para ver si una cosa es igual a otra no se utiliza el = de asignación, sino el == de condicional.

Para mejorar la calidad del código comentarte unas cositas:

Intenta evitar variables que puedan ser conflictivas (value se llama igual que el atributo homónimo...).

Además para acelerar la velocidad del script y la simplicidad de lectura del mismo, si vas a poner varios IF que se anulan unos con otros, es mejor que utilices la estructura IF... ELSE IF... ELSE IF... ELSE.... Así si entra en un caso, no entra en los demás, y se ve mejor.

Por último creo que tienes un condicional, al final, que no va a ser nunca false, y que siempre va a ser accedido. Hablo del if (value != ''), ya que tal y como lo planteas, la variable value siempre tendrá un valor.


Ya creo que sólo podríamos simplificar el script diciendo que value sea:
value = what.value;
dentro de la función, y que
document.images["test"].src = "imagenes/imagen0"+value+".gif";




Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 28/06/2007, 17:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 53
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Variable o Arreglo

Hola, gracias por responder, te dejo la solución que termine implementando:

Código:
<SCRIPT LANGUAGE="JavaScript"><!--
function change(what) {
    value = what.options[what.selectedIndex].value;
	myvar = value;
		switch (value)
			{
				
				case (value = "2"):
				myvar = "imagenes/imagen02.gif";
				break
				
				case (value = "3"):
				myvar = "imagenes/imagen03.gif";
				break
				
				case (value = "4"):
				myvar = "imagenes/imagen04.gif";
				break
				
				case (value = "1"):
				myvar = "imagenes/imagen01.gif";
				break
				
				case (value = "5"):
				myvar = "imagenes/imagen05.gif";
				break
				
			}
    if (myvar != '')
        if (document.images)
            document.images['montaje'].src = myvar;
}
//--></SCRIPT>
Y se invoca desde:

Código:
<select name="montaje" onChange="change(this)">
Gracias por la ayuda!
  #4 (permalink)  
Antiguo 28/06/2007, 18:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Variable o Arreglo

Hola:

La versión de derkenuke me parece mucho mejor... además la lógica de lo que muestras no está muy clara:

Código:
case (value = "2"):
Si funciona vale, pero en esta línea sería más "normal" poner esto:

Código:
case "2":
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 19:28.