Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/08/2006, 11:54
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Debes definir "values" a tus checkbox ..

Código PHP:
<input type=checkbox name='opcion[]' value="opcion1"
<
input type=checkbox name='opcion[]' value="opcion2"
<
input type=checkbox name='opcion[]' value="opcion3"
Tu navegador sólo enviará los datos que se seleccionaron .. es decir los valores de los checkbox que se seleccionaron en un array.

Ese array lo puedes recorrer con un bucle foreach() simple:

Código PHP:
foreach($_POST['opcion'] as $opcion){
   echo 
$opcion."<br>";

Si tu quieres saber los que seleccionastes y los que no seleccionastes, previamente PHP "debe" saber el total de "opciones" que como "universo" puede tener ese "array".

Es decir .. tus "opciones" (checkbox) deberías generarlos con PHP .. tal vez de datos que vengan de un array o de una Consulta SQL a a una BBDD (o a "mano" pero replicando sus valores en un array en PHP mínimo).

Por ejemplo:

Código PHP:
$opciones=array('opcion1','opcion2','opcion3');

foreach (
$opciones as $valor){
  echo 
"<input type=\"checkbox\" name=\"opcion[]\" value=\"".$valor."\">\n";

En tu script de proceso .. tendrás el array $opciones (con el total de elementos y valores que puedas tener) y en $_POST['opcion'] tendrás otro array .. pero con los elementos que -sólo se seleccionaron-

Ahora es cosa de que recorras con un bucle foreach() por ejemplo el array que contiene todas las opciones y compares con el que sólo tiene las seleccionasdas para poder decir "esta se seleccionó y la otra no ..".

Código PHP:
foreach ($opciones as $opcion){
      if (
in_array($opcion,$_POST['opcion'])){
         echo 
$_POST['opcion']." --> SI<br>";
      } else {
         echo 
$_POST['opcion']." --> NO<br>";           
      }

PD: asumo un formulario con method=POST para los ejemplos ...
PD2: No he probado la última parte (verificación de los seleccionados o no ...).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.