Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/08/2006, 16:29
marlos
 
Fecha de Ingreso: agosto-2006
Mensajes: 13
Antigüedad: 17 años, 8 meses
Puntos: 1
Muchas gracias por la gran ayuda. Por fín me ha salido.
Expongo el código que he usado:

Código PHP:
<?php
session_name
('opciones');    //defino la session como “opciones”
session_start();             //inicio la session que me servirá para guardar 
                             //el array $opciones

$numSesiones $_POST['numSesiones'];  //obtengo las sesiones deseadas
$oper $_POST['oper'];                //obtengo el caso para el switch

if (isset($_POST['oper'])) $oper $_POST['oper'];
    
switch(
$oper)
{

case 
"alta":        //en el caso de alta dibujo el formulario

for ($i=0$i<=$numSesiones-1;$i++){    
    
$opciones[$i]=$i;        //pongo el valor de la posición en cada checkbox
    
echo"<table><tr>    
     <td><input type=\"checkbox\" name=\"opcion[]\" value=\""
.$opciones[$i]."\" /></td>
     </tr></table>"
;            
}
$_SESSION['opciones']=$opciones;  //asigno la variable SESSION con el array
                                  //$opciones obtenido

break;



case 
"guardar":    //caso guardar donde recupero tanto los checkboxs que están
                   //marcados como los que no lo están

$i=0;            //inicializo a 0
//compruebo que la sesion exista y que no estén vacíos los arrays de sesion y opcion
if (isset($_SESSION['opciones']) && (!empty($_SESSION['opciones'])) && (!empty($opcion))){
    foreach (
$_SESSION['opciones'] as $opcion){
        if (
in_array($opcion,$_POST['opcion']))
            
$_POST['opcion2'][$i]="SI";
        else
            
$_POST['opcion2'][$i]="NO";
        
$i++;
    }
}else{  
//significa que no hay marcado ningún checkbox con lo que relleno el 
        //array de todos los checkbox conforme no están marcados.
     
for ($j=0$j<=$numSesiones-1;$j++)
        
$_POST['opcion2'][$j]="NO";
}
break;

}  
//fin del switch

//para ver los datos del formulario enviados a través de POST
echo"Datos enviados: <pre>";
print_r($_POST);
echo
"</pre>";        
?>
PD: He tenido que asignar los valores a otro array: $_POST['opcion2'] debido a que con $_POST['opcion'] no lo hacía bien.

PD2: En el caso de no haber ningún checkbox marcado he realizado un for para llenar el contenido del array a “no”.

PD3: Para mostrar el formulario el <table> lo he puesto dentro del for, ya que sino no me dejaba la linea de separacion.

Muchas gracias. Espero le sirva a más de uno.

Saludos.