Ver Mensaje Individual
  #24 (permalink)  
Antiguo 03/06/2012, 06:32
Dexter123
 
Fecha de Ingreso: febrero-2012
Mensajes: 29
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Multiple checbox-paso de parametro como string

Buenas! Ante todo gracias por las respuestas que me has dado.No he tenido tiempo hasta ahora para entrar en la web.

Te dire que si que lo probe y no reconocia el signo + como el %20, asi que no era lo que yo buscaba, obviamente me intente basar en tu codigo para hacer lo que yo queria y modificarlo sin exito.

Ahora bien al final me decidi por otra manera.

Como no podia modificar el fichero que recibia los datos de este, porque como dije tenia que recibir una cadena con espacios si o si, pues cree otro fichero intermedio digamos, que recibia en una array los valores del checkbox y en este fichero intermedio formaba la cadena y luego enviaba esta cadena.





Cita:
Iniciado por Nemutagk Ver Mensaje
Efectivamente, el código original que publiqué tenia 2 errores tipográficos, pero aparte de eso, no es muy optimo, chechando el código lo mejor es hacer algo así...

Código HTML:
Ver original
  1.     <head>
  2.         <title>Checkbox</title>
  3.         <script type="text/javascript">
  4.             function getValues() {
  5.                  var allvalues = '';
  6.                  for(var i=0; i<document.miForm.elements.length; i++) {
  7.                       if (document.miForm.elements[i].type == "checkbox") {
  8.                            if (document.miForm.elements[i].checked) {
  9.                                 if (allvalues != '') {
  10.                                     allvalues = allvalues + ' ' + document.miForm.elements[i].value;
  11.                                 }else {
  12.                                     allvalues = document.miForm.elements[i].value;
  13.                                 }
  14.                            }
  15.                       }
  16.                  }
  17.              
  18.                  if(allvalues != '') {
  19.                       var oculto = document.getElementById('Idcondenv');
  20.                       oculto.value = allvalues;
  21.                 }
  22.             }
  23.  
  24.             function checkValues() {
  25.                 if (document.getElementById('Idcondenv').value == '') {
  26.                     alert('Debes seleccionar al menos 1 checkbox');
  27.                     return false;
  28.                 }
  29.             }
  30.         </script>
  31.     </head>
  32.     <body>
  33.         <form name="miForm" method="get" action="checkbox.php" onsubmit="return checkValues();">
  34.              <input type="checkbox" value="1" />
  35.              <input type="checkbox" value="2" />
  36.              <input type="checkbox" value="3" />
  37.              <input type="checkbox" value="4" />
  38.              <input type="checkbox" value="5" />
  39.              <input type="checkbox" value="6" />
  40.              <input type="text" id="Idcondenv" name="Idcondenv" />
  41.              <input type="submit" value="Enviar" onclick="getValues()" />
  42.         </form>
  43.         <?php
  44.         if (isset($_GET['Idcondenv'])) {
  45.             $condenv = $_GET['Idcondenv'];
  46.             $condenv = explode(' ',$condenv);
  47.             echo '<pre>';
  48.             var_dump($condenv);
  49.             echo '</pre>';
  50.         } ?>
  51.     </body>
  52. </html>



Sin ofender, pero criticas algo sin probarlo, el navegador por defecto codifica los espacios con el signo + (más), por lo tanto, el código generado es correcto, no hay diferencia real entre el signo + (más) y %20, si hubieras probado el código hubieras visto que funciona correctamente, incluso agrego un código PHP exactamente igual al que usas en el archivo donde vas a recoger las variables...