Foros del Web » Programando para Internet » Javascript »

Enviar valor de checkbox por url mediante link

Estas en el tema de Enviar valor de checkbox por url mediante link en el foro de Javascript en Foros del Web. buenas, en principio feliz año nuevo a todos! :) Vamos al grano... de este mismo foro, he obtenido el siguiente codigo: Código HTML: <html> <head> ...
  #1 (permalink)  
Antiguo 31/12/2014, 09:10
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Enviar valor de checkbox por url mediante link

buenas, en principio feliz año nuevo a todos! :)

Vamos al grano... de este mismo foro, he obtenido el siguiente codigo:

Código HTML:
<html><head><script>
function enlace() {
      <!-- "frm" == name del formulario; "fotos" == name de los radiobuttons -->
      var radio= document.frm.fotos;
      for (var i=0; i<radio.length; ++i) {
            if (radio[i].checked) {
                  var pasar= radio[i].value; break;
            }
      }
<!-- "tu_pagina.php" == página que quieres abrir -->
document.location.href= 'tu_pagina.php?valor='+pasar;
<!-- usa window.open si quieres... -->
}
</script></head><body>
<form name="frm">
<input type="radio" name="fotos" value="Si">Si
<input type="radio" name="fotos" value="No" checked>No
</form>
<a href="javascript:enlace()">Enlace</a>
</body></html> 
¿Que hace? Bueno, al darle click en el Enlace, llama a una funcion js, y este verifica que opcion del radio se ha seleccionado y la envia por la url junto al link.

Ahora bien, necesito algo parecido, pero utilizando checkbox. Lo que necesito es que al darle en el link, junto con el mismo se envíen por url los values de los check que han sido seleccionados.

Alguien podría ayudarme por favor??

Desde ya muchas gracias!!
  #2 (permalink)  
Antiguo 31/12/2014, 09:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar valor de checkbox por url mediante link

Hola:

¿Por qué quieres usar enlaces fabricados con javascript, cuando el comportamiento lógico del formulario hace lo que necesitas sin usar javascript, o sea, de forma accesible...?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 31/12/2014, 09:24
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

tengo entendido que con un enlace no puedo enviar los valores de los checkbox seleccionados, como si fuese un boton submit, es por eso que encontré esa solución, si hay otras estoy dispuesto a cambiar!

Lo que necesito es que luego de seleccionar varios checkbox de un listado, pueda enviar sus respectivos values por distintos enlaces (anular y confirmar serian mis enlaces), y luego recuperarlos, claro...
  #4 (permalink)  
Antiguo 31/12/2014, 09:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

Cita:
Iniciado por axelb Ver Mensaje
Lo que necesito es que luego de seleccionar varios checkbox de un listado, pueda enviar sus respectivos values por distintos enlaces
¿Para qué? Es decir, puedes enviar toda la información mediante un formulario, además, ten en cuenta que —aunque sean pocos— hay usuarios que desactivan JavaScript de su navegador, por lo que tu función no funcionaría con ellos. Particularmente, me parece innecesaria y poco práctica la manera que pretendes enviar la información, ya que enviándola mediante un formulario, te evitas hacer todo esto y funcionará con o sin JavaScript en el navegador.

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
  #5 (permalink)  
Antiguo 31/12/2014, 09:36
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

El uso de js no es un problema y necesito que sean link...
  #6 (permalink)  
Antiguo 31/12/2014, 09:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar valor de checkbox por url mediante link

Hola:

Para empezar, te recomiendo que revises un pequeño tutorial que hice sobre formularios: El abc de los formularios.

Los radios y los checkboxes funcionan igual, salvo que pueden enviarse varios valores con éstos últimos (para recibirlos con php, los nombres deben terminar con un juego de corchetes -ver tuto-)...

Después de revisar el tuto, pregúntanos las dudas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 31/12/2014, 09:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar valor de checkbox por url mediante link

Hola otra vez:

Cita:
Iniciado por axelb Ver Mensaje
El uso de js no es un problema y necesito que sean link...
Un botón submit, con ciertos estilos, pueden parecerse a los enlaces

Eso de "necesito"... es muy fastidioso...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 31/12/2014, 09:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

Cita:
Iniciado por caricatos Ver Mensaje
Un botón submit, con ciertos estilos, pueden parecerse a los enlaces
Es exactamente lo que le iba a decir. Olvidé editar mi respuesta.
__________________
«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 31/12/2014, 10:14
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

El problema no está en los formularios, tengo varios y funcionan sin problema, pero para este caso necesito que sea así (tengo un jefe), y no se como hacerlo con el js.

He leído tu tutorial, y no dice nada de enviar datos de un formulario a través de la url, o por lo menos no lo encontré! :/

Aclaro también que es para un sistema web, en una pequeña intranet...
  #10 (permalink)  
Antiguo 31/12/2014, 10:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

Bueno, si de todos modos quieres o tienes que hacerlo así, puedes recorrer el listado de checkbox y verificar uno por uno los que estén marcados, que es lo que veo que haces, sin embargo, en lugar de terminar el bucle al haber encontrado un checkbox marcado, lo que debes de hacer es formar una query string con los nombres de los checkbox marcados y sus valores, de modo que los vas concatenando y al final lo adjuntado a la URI.

Código Javascript:
Ver original
  1. for (var i = 0, l = radio.length, query = []; i < l; i++){
  2.     if (radio[i].checked){
  3.         query.push(radio[i].name + "=" + radio[i].value);
  4.     }
  5. }
  6.  
  7. location.href = "tu_pagina.php?" + query.join("&");

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 31/12/2014, 10:59
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

He probado así, pero no me funciona...

que esta mal??

Código HTML:
Ver original
  1. function enlace2() {
  2.     var radio= document.frm.b;
  3.     for (var i = 0, l = radio.length, query = []; i < l; i++){
  4.     if (radio[i].checked){
  5.         query.push(radio[i].name + "=" + radio[i].value);
  6.    }
  7. }
  8.  
  9. location.href = "check_modificar.php?" + query.join("&");
  10. }
  11. <form name="frm">
  12. <input type="checkbox" name="b[]" value="Si">Si
  13. <input type="checkbox" name="b[]" value="No" checked>No
  14. </form>
  15. <a href="javascript:enlace2()">Modificar</a>
  16. </body></html>

:/
  #12 (permalink)  
Antiguo 31/12/2014, 11:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

¿Cuál es el resultado que obtienes? Por otro lado, si solo hay dos opciones de ese tipo (sí/no), deberías de usar un radio button, no un checkbox.

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
  #13 (permalink)  
Antiguo 31/12/2014, 14:29
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

lo de si/no esta así porque así era el ejemplo que encontré, yo lo estoy probando así y cuando logre hacerlos funcionar lo implemento en donde realmente lo necesito que son muuuchas mas opciones, ya que, como mencione antes, los enlaces van a ser anular y confirmar.

El resultado que obtengo es nada, hago click en el enlace y nada...
  #14 (permalink)  
Antiguo 31/12/2014, 16:00
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

Haz esto y fíjate qué se muestra en la consola (en Chrome, pulsa F12 y selecciona 'Console').

Código Javascript:
Ver original
  1. function enlace2() {
  2.     var radio= document.frm.b;
  3.     for (var i = 0, l = radio.length, query = []; i < l; i++){
  4.         if (radio[i].checked){
  5.             query.push(radio[i].name + "=" + radio[i].value);
  6.         }
  7.     }
  8.  
  9.     console.log(radio, query, query.join("&"));
  10.  
  11.     location.href = "check_modificar.php?" + query.join("&");
  12. }

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
  #15 (permalink)  
Antiguo 31/12/2014, 16:51
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

Me dice:

Uncaught TypeError: Cannot read property 'length' of undefined

a que se debe?
  #16 (permalink)  
Antiguo 31/12/2014, 18:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

A que document.frm.b no existe. Mejor tómalos así:

Código Javascript:
Ver original
  1. var radio = document.querySelectorAll("[type=checkbox]");

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
  #17 (permalink)  
Antiguo 31/12/2014, 18:27
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

Muy bien, vamos avanzando, me envia la variable asi si selecciono solo la opcion "NO":

check_modificar.php?b[]=No

Y si selecciono ambas opciones, me envia asi...

check_modificar.php?b[]=Si&b[]=No

y no logro imprimir el contenido...
  #18 (permalink)  
Antiguo 31/12/2014, 18:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

Es por el nombre. Mejor quita los corchetes y concatena el valor del contador del bucle más 1:

Código Javascript:
Ver original
  1. function enlace2() {
  2.     var radio= document.frm.b;
  3.     for (var i = 0, l = radio.length, query = []; i < l; i++){
  4.         if (radio[i].checked){
  5.             query.push(radio[i].name.replace("[]", "") + (i + 1) + "=" + radio[i].value);
  6.         }
  7.     }
  8.  
  9.     location.href = "check_modificar.php?" + query.join("&");
  10. }

Así, la query string quedaría así: "b1=Si&b2=No".

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; 01/01/2015 a las 11:42 Razón: Mal escrito
  #19 (permalink)  
Antiguo 02/01/2015, 20:06
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

Buenas, como estan?? He logrado arreglarlo y adaptarlo para lo que necesitaba!! Lo hice asi:

Código Javascript:
Ver original
  1. function enlace(){
  2.     var a = new Array()
  3.     var cant = document.getElementById('escondido').value;
  4.     for(var c=0;c<=cant;c++){
  5.         var id = document.getElementById('check'+c);
  6.         if(id.checked){
  7.             a[c]=id.value
  8.         }
  9.     }
  10.     location.href = "check_modificar.php?re="+a;
  11. }
Código HTML:
Ver original
  1. <form name="frm">
  2. <input type='hidden' id='escondido' value='1'>
  3. <input id="check0" type="checkbox" name="b" value="Si">Si
  4. <input id="check1" type="checkbox" name="b" value="No" checked>No
  5. </form>
  6. <a href="javascript:enlace()">Eliminar</a>

Gracias a todos por ayudarme!! Saludos y que tengan un excelente 2015!!
  #20 (permalink)  
Antiguo 02/01/2015, 23:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar valor de checkbox por url mediante link

¿Estás concatenando un array a una cadena?

De esa manera, estarías enviando a los valores seleccionados, contenidos en una sola variable y separados mediante comas. Creo que mejor sería que envíes al array como un objeto JSON, parseándolo con el método JSON.stringify y en tu archivo PHP, lo decodificas con la función json_decode.

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
  #21 (permalink)  
Antiguo 03/01/2015, 15:00
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 1
Respuesta: Enviar valor de checkbox por url mediante link

la verdad que no entiendo nada de js y lo que hice lo logre mezclando lo que ya tenia hecho mas las ayuda de ustedes, pero que las variables sean visibles en la url, de verdad que no es un problema en mi caso, he logrado tal cual lo que necesitaba, pero tendré en cuenta eso que me dices!

Saludos

Etiquetas: checkbox, formulario, funcion, html, input, js, mediante, php, url, valor
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 09:19.