Foros del Web » Programando para Internet » Javascript »

Recoger un string mediante checbock y enviarlo en un submit

Estas en el tema de Recoger un string mediante checbock y enviarlo en un submit en el foro de Javascript en Foros del Web. Buenas! Me estoy peleando con php y ahora necesito de javascript al parecer a ver si me podeis echar un cable... Quiero enviar en un ...
  #1 (permalink)  
Antiguo 28/05/2012, 04:38
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 2 meses
Puntos: 2
Recoger un string mediante checbock y enviarlo en un submit

Buenas!

Me estoy peleando con php y ahora necesito de javascript al parecer a ver si me podeis echar un cable...

Quiero enviar en un formulario todos los valores escogidos como una cadena separada por espacios los valores elegidos.

Es decir que si he elegido en un checkbox las opciones 208 213 212 se envien en una cadena 208 213 212, x ejemplo quiero enviarlo a un php entonces se enviaria asi:

appl_experimentform.php?cad_gen=208%20213%20212%20

De momento tengo esto:

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2.            
  3.                   function comprobarCheckBoxCheked(){
  4. *var chk = document.getElementsByName('Idcondenv');
  5. *var len = chk.length;
  6. *var sel = new Array();
  7. *for (i = 0; i<chk.length; i++){
  8. * if(chk[i].checked){
  9. * *sel[sel.length] = chk[i].value;
  10. * }
  11. *}
  12. *$retorno = sel.join(' ');
  13. return $retorno;
  14. }

Con esto recojo los valores elegidos y los guardo en la variable retorno que es la que devuelvo.


Código HTML:
Ver original
  1. <form action="www.as.com" method=get>
  2.            
  3.             <INPUT value=1 CHECKED type=checkbox name=Idcondenv>
  4.             <br />
  5.             <INPUT value=2 type=checkbox name=Idcondenv>
  6.             <br />
  7.             <INPUT value=3 type=checkbox name=Idcondenv>
  8.             <input type="submit" value="Enviar" onclick="comprobarCheckBoxCheked()">
  9.            
  10.         </form>

Aqui lo que yo quiero es que se envie esa cadena pero por lo visto no lo consigo sino que se envia:

Código PHP:
Idcondenv=1&Idcondenv=2&Idcondenv=
Cuando yo esperaba que se devolviera:

Código PHP:
Idcondenv=1%202%203 
Osea todo junto ...que hago mal?
  #2 (permalink)  
Antiguo 28/05/2012, 05:56
Avatar de iukaeru  
Fecha de Ingreso: mayo-2012
Mensajes: 127
Antigüedad: 12 años
Puntos: 12
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

¿Y de dónde sale ese 202, 203, etc.? Yo lo que veo es que en tus INPUTS estás enviando los valores 1, 2, 3, etc: <INPUT value=1 CHEC...
  #3 (permalink)  
Antiguo 28/05/2012, 06:09
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

Cita:
Iniciado por iukaeru Ver Mensaje
¿Y de dónde sale ese 202, 203, etc.? Yo lo que veo es que en tus INPUTS estás enviando los valores 1, 2, 3, etc: <INPUT value=1 CHEC...
Si si, eso son los valores reales que quiero enviar, pero solo para probar lo estoy haciendo con 1 2 3, pero vamos da igual lo que quiero enviar es la cadena.

Para el caso del codigo que muestro lo que quiero enviar es :

Código PHP:
Idcondenv=1%202%203 
Cuando lo que realmente se enviar es :

Código PHP:
Idcondenv=1&Idcondenv=2&Idcondenv=
  #4 (permalink)  
Antiguo 28/05/2012, 06:20
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

¿Y qué mas da? En las primeras líneas del PHP, cojes esas variables que recibes por $_GET y las concatenas con un string con el formato que necesitas.
Para enviarlas con ese formato, deberías crear un <input type='hidden'> en el formulario, modificando su value con javascript, escribiendo en él el value de los checbox marcados. Algo más costoso y pesado de hacer que lo de modificar el php.
  #5 (permalink)  
Antiguo 28/05/2012, 06:27
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

Cita:
Iniciado por marlanga Ver Mensaje
¿Y qué mas da? En las primeras líneas del PHP, cojes esas variables que recibes por $_GET y las concatenas con un string con el formato que necesitas.
Para enviarlas con ese formato, deberías crear un <input type='hidden'> en el formulario, modificando su value con javascript, escribiendo en él el value de los checbox marcados. Algo más costoso y pesado de hacer que lo de modificar el php.
Pues ahí esta el problema que al php que le envio la informacion tengo que hacerlo asi, ya que no puedo modificar ese php, porque? Pues porque ese php no es mio y si lo modifico altera a otra serie de ficheros, asi que yo tengo que enviarlo en ese formato.
  #6 (permalink)  
Antiguo 28/05/2012, 07:36
Avatar de diamari  
Fecha de Ingreso: marzo-2012
Mensajes: 95
Antigüedad: 12 años, 1 mes
Puntos: 30
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

Cita:
Iniciado por marlanga Ver Mensaje
Para enviarlas con ese formato, deberías crear un <input type='hidden'> en el formulario, modificando su value con javascript, escribiendo en él el value de los checbox marcados. Algo más costoso y pesado de hacer que lo de modificar el php.
Eso es lo que vas a tener que hacer.
  #7 (permalink)  
Antiguo 28/05/2012, 08:12
 
Fecha de Ingreso: abril-2006
Mensajes: 27
Antigüedad: 18 años
Puntos: 6
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

Añado, ademas de lo que te han dicho antes del campo oculto con el valor calculado, si ademas quieres evitar que se envien campos checkbox individuales deberas desmarcarlos o deshabilitarlos antes de realizar el submit del formulario.
  #8 (permalink)  
Antiguo 28/05/2012, 08:22
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Recoger un string mediante checbock y enviarlo en un submit

He tenido ayuda de un compañero del foro y estoy en esto:

Código Javascript:
Ver original
  1. function getValues() {
  2. * * * * * * * * *var allvalues = '';
  3. * * * * * * * * *for(var i=0; i<document.miForm.elements.length; i++) {
  4. * * * * * * * * * * * if (document.miForm.elements[i].type == "checkbox") {
  5. * * * * * * * * * * * * * *if (document.miForm.elements[i].checked) {
  6. * * * * * * * * * * * * * * * * allvalues = allvalues + document.miForm.elements[i].value + ' ' ;
  7. * * * * * * * * * * * * * *}
  8. * * * * * * * * * * * }
  9. * * * * * * * * *}
  10. * * * * * * *
  11. * * * * * * * * *if(allvalues != '') {
  12. * * * * * * * * * * * var oculto = document.getElementById('Idcondenv');
  13. * * * * * * * * * * * oculto.value = allvalues;
  14.                      
  15. * * * * * * * * }
  16. * * * * * * }
  17. *
  18. * * * * * * function checkValues() {
  19. * * * * * * * * if (document.getElementById('Idcondenv').value == '') {
  20. * * * * * * * * * * alert('Debes seleccionar al menos 1 checkbox');
  21. * * * * * * * * * * return false;
  22. * * * * * * * * }
  23. * * * * * * }


Código HTML:
Ver original
  1. <form name="miForm" method="get" action="checkbox.php" onsubmit="return checkValues();">
  2. * * * * * * *<input type="checkbox" value="1" />
  3. * * * * * * *<input type="checkbox" value="2" />
  4. * * * * * * *<input type="checkbox" value="3" />
  5. * * * * * * *<input type="checkbox" value="4" />
  6. * * * * * * *<input type="checkbox" value="5" />
  7. * * * * * * *<input type="checkbox" value="6" />
  8. * * * * * * *<input type="hidden" id="Idcondenv" name="Idcondenv" />
  9. * * * * * * *<input type="submit" value="Enviar" onclick="getValues()" />
  10. * * * * </form>


El resultado es:

Código PHP:
checkbox.php?Idcondenv=1+2
Pero yo quiero que en vez de esos signos de suma, que no se de donde salen, aparezca el simbolo de espacio, es decir que aparezca:

Código PHP:
Idcondenv=1%202%20 
Yo pense que seria tan facil como:

Código PHP:
 allvalues allvalues document.miForm.elements[i].value '%20' 
Pero devuelve :

Código PHP:
checkbox.php?Idcondenv=1%25202%2520 
En el codigo principal que pongo entre las comillas simples ya dejo un espacio en blanco, pero como veis me sale 1+2+

Alguna idea?

Gracias!

Etiquetas: formulario, input, mediante, php, recoger, string, submit
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 03:28.