Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Paso Variables con Jquery a Java

Estas en el tema de Paso Variables con Jquery a Java en el foro de Jquery en Foros del Web. Buenos días Estoy desarrollando una Aplicación con HTML5, en el front, y Java, en el back. Quiero pasar varables al back, como el idioma, la ...
  #1 (permalink)  
Antiguo 23/02/2015, 03:40
 
Fecha de Ingreso: abril-2013
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Paso Variables con Jquery a Java

Buenos días

Estoy desarrollando una Aplicación con HTML5, en el front, y Java, en el back.

Quiero pasar varables al back, como el idioma, la cual, no está en un formulario, y lo tengo con un select.

Para pasarlo del front al back, lo cargo en una variable para que lo envíe.
El código de javascripta que tiene la página es:

$(document).ready(function(){

//Cargo el valor del Select al cargar la página.
var lang = $("#idioma").val();

//Cambio el valor del #idioma cuando cambio su valor.
$("idioma").change(function() {

var lang = $("#idioma").val(); });

});


Para pasar el valor en el HTML, utilizo: <script>document.write(lang)</script>

<li><a href="ListaEquipos?codcategoria=C001&idioma=<scrip t>document.write(lang);</script>">Equipo1</a></li>

Y no me está pasando el valor. Me podéis indicar que estoy haciendo mal.

Debería indicarle: window.document.write(lang);

Gracias por vuestra ayuda.

Un saludo.

Roberto
  #2 (permalink)  
Antiguo 23/02/2015, 03:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Paso Variables con Jquery a Java

Lo que intentas hacer es una ofensa a las buenas costumbres de la programación.

Cambia el valor de la query string en la misma función:

Código Javascript:
Ver original
  1. var lang = $("#idioma").val(),
  2.     url = "ListaEquipos?codcategoria=C001&idioma=" + lang;
  3.  
  4. $("#id del enlace").prop("href", url);

Asígnale un id al enlace para que puedas trabajar más fácilmente.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 23/02/2015, 04:08
 
Fecha de Ingreso: abril-2013
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Paso Variables con Jquery a Java

Alexis

Gracias por la respuesta.

A lo mejo no me he expresado bien.

Tú me indicas una solución puntual.
¿Y si tengo 20 enlaces?
¿No puedo crear una variable para que me pase el nuevo valor seleccionado por el usuario?

Gracias por la ayuda.

Rob
  #4 (permalink)  
Antiguo 23/02/2015, 08:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Paso Variables con Jquery a Java

Si tienes 20, 50 o 500 enlaces, supongo que todos no apuntarán hacia la misma dirección, por lo que tendrás que usar un bucle para recorrer tanto al grupo de elementos de los cuales obtendrás los valores como al grupo de enlaces que en lugar de tener un id (a menos de que sea secuencial, es decir: id1, id2, id3, ...), deberían de tener una clase y en cada iteración realizarías la asignación de valores.

Un pequeño ejemplo:

Código HTML:
Ver original
  1. <!-- LAS CAJAS DE TEXTO DE LAS CUALES OBTENDRÉ LOS VALORES -->
  2. <input type = "text" class = "cajas" value = "123" />
  3. <input type = "text" class = "cajas" value = "456" />
  4. <input type = "text" class = "cajas" value = "789" />
  5. <input type = "text" class = "cajas" value = "012" />
  6.  
  7. <!-- LOS ENLACES A LOS CUALES MODIFICARÉ EL VALOR DE SU ATRIBUTO HREF -->
  8. <a href = "ListaEquipos?codcategoria=C001&idioma=" class = "enlaces">Enlace 1</a>
  9. <a href = "ListaEquipos?codcategoria=C001&idioma=" class = "enlaces">Enlace 2</a>
  10. <a href = "ListaEquipos?codcategoria=C001&idioma=" class = "enlaces">Enlace 3</a>
  11. <a href = "ListaEquipos?codcategoria=C001&idioma=" class = "enlaces">Enlace 4</a>

Código Javascript:
Ver original
  1. var inputs = document.querySelectorAll(".cajas"), //Las cajas de texto
  2.     total = inputs.length, //El total de cajas de texto
  3.     enlaces = document.querySelectorAll(".enlaces"); //Los enlaces
  4.  
  5. for (var i = 0; i < total; i++){
  6.     enlaces[i].href += inputs[i].value; //Concateno el valor del atributo 'href' del enlace con el valor de la caja de texto
  7. }

El resultado será el siguiente:

Código HTML:
Ver original
  1. <a href = "ListaEquipos?codcategoria=C001&idioma=123" class = "enlaces">Enlace 1</a>
  2. <a href = "ListaEquipos?codcategoria=C001&idioma=456" class = "enlaces">Enlace 2</a>
  3. <a href = "ListaEquipos?codcategoria=C001&idioma=789" class = "enlaces">Enlace 3</a>
  4. <a href = "ListaEquipos?codcategoria=C001&idioma=012" class = "enlaces">Enlace 4</a>

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 23/02/2015 a las 08:27 Razón: Adición de ejemplo
  #5 (permalink)  
Antiguo 24/02/2015, 04:02
 
Fecha de Ingreso: abril-2013
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Paso Variables con Jquery a Java

Buenas Alexis

Te agradezco tu explicación, para los que no somos expertos, es de gran utilidad.

He cambiado el link por la solución que me pasaste, pero no veo la parte de cambio del valor del lenguaje. Me pasa el lenguaje con el que se carga la página.

He utilizado la solución que yo tenía y tampoco me funciona, en la url no se pasa el nuevo idioma.

Mi solución era:

//Cambio el valor del #idioma cuando cambio su valor.
$("idioma").change(function() {

var lang = $("#idioma").val(); });

Me puedes indicar si estoy haciendo algo mal.

Gracias de antemano.

Un saludo.

Roberto
  #6 (permalink)  
Antiguo 24/02/2015, 09:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Paso Variables con Jquery a Java

Bueno, si lo tienes así: $("idioma"), es normal que no funcione porque de esa manera no tomas a ningún elemento. Si 'idioma' es el id, debe de ser así: $("#idioma"), pero si es la clase, debe de ser así: $(".idioma").

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 25/02/2015, 02:43
 
Fecha de Ingreso: abril-2013
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Paso Variables con Jquery a Java

Buenas, Alexis

Ese error es mio al escribir el comentario.
En el código está correcto.

//Cargo el valor del Select al cargar la página.

var lang = $("#idioma").val();

//Cambio el valor del #idioma cuando cambio su valor.
$("#idioma").change(function() {

var lang = $("#idioma").val(); });

Como ves, paso el valor cuando cargo la página y luego, cuando cambio el idioma en el SELECT.

Por alguna razón, no me coge el cambio y me envía el idioma con el que carga la página.

Si veis algo mal, agradezco la ayuda.

Un saludo.

RG
  #8 (permalink)  
Antiguo 25/02/2015, 03:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Paso Variables con Jquery a Java

No vuelvas a declarar a lang dentro de la función pues limitas su alcance. Solo declárala una vez al inicio y luego úsala directamente.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 27/02/2015, 04:10
 
Fecha de Ingreso: abril-2013
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Paso Variables con Jquery a Java

Alexis

Corregí el tema de la variable y me sigue sin actualizar el valor al cambiar el idioma.

Te envío el SELECT por si hubiera algún error.

<select id="idioma" name="idioma" size="1">
<option value="ESP">ESP</option>
<option value="ENG">ENG</option>
</select>

Gracias por la ayuda.

Un saludo.

Roberto
  #10 (permalink)  
Antiguo 27/02/2015, 09:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Paso Variables con Jquery a Java

Prueba esto:

Código Javascript:
Ver original
  1. var lang = $("#idioma").val();
  2.  
  3. $("#idioma").on("change", function(){
  4.     lang = $(this).val();
  5.     alert(lang);
  6. });

Es prácticamente lo mismo que tienes, con la diferencia de que dentro de la función, hago referencia al combo mediante la palabra reservada this.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 01/03/2015, 01:54
 
Fecha de Ingreso: abril-2013
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Paso Variables con Jquery a Java

Alexis

He cambiado la función con el evento delegado (on()) que propusiste y veo por el Alert, que cambia el idioma.

Pero la función Prop, no me cogía el cambio.
He creado un evento delegado al pulsar el enlace (on()) que lance la función Prop y ahora sí que cambia el idioma.

Muchas gracias por la ayuda.

Un saludo.

Roberto

Etiquetas: java, paso, variables
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 14:21.