Ver Mensaje Individual
  #23 (permalink)  
Antiguo 28/05/2012, 15:49
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Multiple checbox-paso de parametro como string

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>

Cita:
Pero lo que yo quiero es que salga:

Código PHP:
Idcondenv=1%202%20

Donde entiendo que %20 son los espacios en blanco.
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...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)