Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/04/2012, 12:45
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Contar el numero de checkbox activos

Te dejo un modelo comlpleto para que lo analices y compares con el tuyo, la cave un poco pasa por usar empty(). Se entiende que $opciones es un array, donde cada uno de sus valores es lo que se haya pasado en los opcion[] del form

fijate

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>Opciones</title>
  6. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  7. </head>
  8. <body>
  9. <?php
  10.  
  11. if(isset($_POST['procesar'])){
  12. $opciones = $_POST['opcion'];
  13. if(isset($_POST['ayudaExtra'])){
  14. echo "<p>Se solicitó ayuda extra</p>\n";
  15. }else{
  16. echo "<p>No se requirió ayuda extra.</p>\n";
  17. }
  18.  
  19. // Con esto te imprime cuales opciones se seleccionaron
  20. if(empty($opciones)){
  21. echo "<p>No hay opciones seleccionadas.</p>\n";
  22. }else{
  23. $totalSeleccionados = count($opciones);
  24. echo "<p>Se seleccionaron $totalSeleccionados opcion(s): ";
  25. for($i=0; $i < $totalSeleccionados; $i++){
  26. echo($opciones[$i] . " ");
  27. }
  28. echo "</p>";
  29. }
  30.  
  31.        
  32. // una variante si querés saber si un checkbox en particular está seleccionado
  33. // lo pongo solo para dos, A y B, podés agregarla para el resto, se puede tambie extraer esta info
  34. // del resultado anterior, usa la función estaSeleccionado() al pie
  35.     if(estaSeleccionado('opcion','A')){
  36.     echo "<b>A se incluye en la selección</b><br />";
  37.     }
  38.     if(estaSeleccionado('opcion','B')){
  39.     echo "<b>B se incluye en la selección</b><br />";
  40.     }
  41.  
  42. } // cierre post procesar
  43.    
  44. function estaSeleccionado($nombreCb,$valorCB){
  45.     if(!empty($_POST[$nombreCb])){
  46.         foreach($_POST[$nombreCb] as $elValor){
  47.             if($elValor == $valorCB){
  48.             return true;
  49.             }
  50.         }
  51.     }
  52. return false;
  53. }
  54. ?>
  55.  
  56. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  57.     <p>
  58.         ¿Que opciones prefiere?<br/>
  59.         <input type="checkbox" name="opcion[]" value="A" />A<br />
  60.         <input type="checkbox" name="opcion[]" value="B" />B<br />
  61.         <input type="checkbox" name="opcion[]" value="C" />C<br />
  62.         <input type="checkbox" name="opcion[]" value="D" />D<br />
  63.         <input type="checkbox" name="opcion[]" value="E" />E
  64.     </p>
  65.     <p>
  66.         ¿Necesita ayuda extra?
  67.         <input type="checkbox" name="ayudaExtra" value="Yes" />
  68.     </p>
  69.     <input type="submit" name="procesar" value="enviar" />
  70. </form>
  71.  
  72.  
  73. </body>
  74. </html>

Saludos
PD, si hay más dudas, te recomendo pidas que muevan el tema a php
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.