Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Select dinámico

Estas en el tema de Select dinámico en el foro de Javascript en Foros del Web. Bueno soy un novato en esto del Javascript, ya medio domino el PHP, pero como digo Javascript me resulta novedoso, aquí va la pregunta: Quiero ...
  #1 (permalink)  
Antiguo 31/07/2013, 14:46
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 10 meses
Puntos: 1
Select dinámico

Bueno soy un novato en esto del Javascript, ya medio domino el PHP, pero como digo Javascript me resulta novedoso, aquí va la pregunta:

Quiero hacer que seleccionando una opción de un select, que está dentro de una celda de una tabla en la celda contigua me salga un valor, p.e., opción1 = queso saldría valor 4 €, seleccionamos chorizo sale 3 €. Os pongo el código erróneo:

Código:
<!-- Este es el select con dos opciones.
<td><select onchange="seleccion()"><option id="queso">queso</option><option id="chorizo">chorizo</option></select></td>
<td>
<script>
     function seleccion(){
          if(document.getElementById("queso").value == "queso"){
               document.write("4 €");
          }else{
               document.write("3 €");		
          }
     }
</script>
</td>
Espero que me haya explicado y quede claro mi explicación.

Un saludo.
  #2 (permalink)  
Antiguo 01/08/2013, 08:25
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Select dinámico

Esto..................... Te vas a reír un ratito por que arriba tienes un <!-- que hace que no se ejecute el código. Me temo que estas confundiendo el // de javascript con el <!-- No se ejecuta--> de html. Saludos.
  #3 (permalink)  
Antiguo 01/08/2013, 13:33
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Select dinámico

No este comentario lo he puesto aquí como aclaración, en mi código no tengo por costumbre poner comentarios, a no ser que sea para una web de otra persona que comento cualquier cosa anómala, pero como he dicho el comentario lo he puesto solo en el código de la pregunta.

Lo del comentario de una línea no lo sabía en javascript, por eso he puesto el <!-- --> como podía poner el /* */, o el //, no se si me explico.

Gracias y un saludo.
  #4 (permalink)  
Antiguo 01/08/2013, 14:29
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Select dinámico

Cita:
Iniciado por Lossarnach Ver Mensaje
No este comentario lo he puesto aquí como aclaración, en mi código no tengo por costumbre poner comentarios, a no ser que sea para una web de otra persona que comento cualquier cosa anómala, pero como he dicho el comentario lo he puesto solo en el código de la pregunta.

Lo del comentario de una línea no lo sabía en javascript, por eso he puesto el <!-- --> como podía poner el /* */, o el //, no se si me explico.

Gracias y un saludo.

Hola, Buenas noticias. He echado un vistazo a tu código, y veo que al obtener el elemento pones
.value=="queso" y no has especificado ningún valor. Te confundiste con lo que viene a ser el innerHTML de una etiqueta ej: <p id="patata">Hello world!</p> var x = document.getElementById('patata').innerHTML; x=="Hello world!"
Pues eso querias hacer para verificar el option. Ademas se suele tomar como referencia de cada elemento formado por el select, un value que era lo que decias pero lo pusiste mal. Ej:
<option value="opcion1">Jamon serrano</option> esto lo haces para no tener que recurrir al texto de la etiqueta que no es ningun identificador, de esta forma tienes un valor especificado para esa opción que te servira para PHP, eso ya mas avanzado y fundamentalmente para lo que querías hacer con el value. Simplemente añade un valor a tus opciones para distinguirlas y listo! Saludos y te agradecería que me añadieras un poquito de kama si te resulto útil. ;))
  #5 (permalink)  
Antiguo 02/08/2013, 07:04
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Select dinámico

Bueno me estas ayudando a entender los nuevos términos del nuevo lenguaje, pero no me ha solucionado os pongo el código corregido:

Código:
<td><select onchange="seleccion()"><option id="tankUSA">Sherman</option><option id="tankUK">Churchill</option></select></td>
         <td><script>
		function seleccion(){
			var tanque = document.getElementById("tankUSA")
			if(tanque.innerHTML == "Sherman"){
				document.write("55");
			}else{
			        document.write("80");		
			}
		}
	</script></td>
</tr>
Por lo que entiendo es que cuando seleccionamos un elemento del select llamaremos a la función "seleccion()", y dentro de la función (esta vez son tanques) buscamos el elemento con la id "tankUSA" y después en el condicional buscamos el valor de la opción "Sherman", pero nada, me pone siempre el valor del else, cuando debería de mostrarme el primer valor porque cumple la condición.

Y otra cuestión es que me muestra el segundo valor en "otra" página, cuando digo otra página es que borra todo la página y solo pone el "80".
  #6 (permalink)  
Antiguo 02/08/2013, 10:38
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Select dinámico

Bueno, aunque sean tanques, o porta-aviones este ejemplo bien hecho debería servirte.

Código HTML:
Ver original
  1. <b>Que te gusta mas?</b><br/>
  2. <!--Empieza el select -->
  3. <select onchange="fun()" id="select">
  4.  
  5. <option value="op1">Jamon</option>
  6. <option value="op2">Queso</option>
  7. <option value="op3">Chorizo</option>
  8.  
  9. <!--Fin del select-->
  10.  
  11. <script type="text/javascript">
  12. function fun(){
  13. //recogemos el valor del <select>, directamente con ID
  14. var x = document.getElementById('select').value;
  15. // Ahora podemos jugar con las posibilidades!!
  16. if (x=="op1"){
  17. alert("Te gusta el jamon!!");
  18. }else{
  19. if (x=="op2"){
  20. alert("Te gusta el queso!!")
  21. }
  22. else{
  23. alert("Te gusta el chorizo!!");
  24. }
  25. }
  26. }

Es bien sencillito, deberías entenderlo... El <select> automaticamente adopta el valor del <option> que esta seleccionado en ese momento, por lo tanto no es necesario que te líes con innerHTML, no es buena idea. A ver si terminamos con tus dudas ;)

Última edición por zerokilled; 03/08/2013 a las 07:01
  #7 (permalink)  
Antiguo 03/08/2013, 03:46
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Select dinámico

Bien lo del select y todo el código referente a su script está más que solucionado y comprendido por la línea del código.

Ahora bien como podemos coger el dato del "alert" para ponerlo en una casilla adjunta, estamos hablando de tablas en una celda está el select y en la otra el dato a imprimir.

He probado el document.write("valor ha imprimir en la celda"); pero esto me imprime en la misma página pero borrando los datos de la página (el propio select y otros componentes).

Aparte de escribir dinámicamente, en la propia función podíamos escribir document.write("Te gusta el jamon!!"); para que por defecto cogiera el valor primero del select.

No sabes cuanto me estás ayudando, muchas gracias y un saludo.
  #8 (permalink)  
Antiguo 03/08/2013, 06:34
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Select dinámico

Me alegro de que todo te vaya saliendo como debe. Lo del document.write() es cierto que se va el HTML de toda la página, ya que estas indicando con "document" que se escriba en TODO el cuerpo del archivo, reemplazandolo. Lo que tienes que hacer es crear por ejemplo un div para que se meta el mensaje:
Código HTML:
Ver original
  1. <div id="msg-container">
  2. <!-- AQUI VA A IR TU TEXTO -->
  3. <//div>
Y ahora con javascript lo obtenemos:
var obtener = Document.getElementById('msg-container');
Y ahora recurdas lo que te enseñe del innerHTML??:
obtener.innerHTML="Esto es el mensaje!!";
Y eso es todo! Si quieres que haya mas de un mensaje te pasara lo mismo de antes, que el anterior se borre. Pero un programador siempre tiene un plan B. Cambia el = por += y podras añadir infinitos mensajes sin que se te borre. Luego si lo combinas cn algun detalle mas te va a quedar chetén!
Cualquier duda estoy siempre disponible aquí o por mensaje privado.
  #9 (permalink)  
Antiguo 03/08/2013, 07:12
 
Fecha de Ingreso: junio-2009
Mensajes: 44
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Select dinámico

Genial ha salido todo correctamente (y captado las sutiles diferencias entre los diferentes métodos del evento document) tienes +1 al kharma y marco esto como respondido, muchas gracias y un saludo.

Etiquetas: dinamico, select
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 10:46.