myCheck[] non è un semplice campo, è un array di campi, che viene costruito ogni volta in maniera diversa quindi così non hai possibilità di sapere se era stato flaggato o meno, perchè l'indice che ha la prima volta che viene caricata la pagina potrebbe essere diverso dalla seconda.
es.
prima volta
codice:
<input name="myCheck[]" type="checkbox" value="vino" />
<input name="myCheck[]" type="checkbox" value="birra" />
<input name="myCheck[]" type="checkbox" value="aranciata" />
seconda volta
codice:
<input name="myCheck[]" type="checkbox" value="vino" />
<input name="myCheck[]" type="checkbox" value="cocaCola" />
<input name="myCheck[]" type="checkbox" value="birra" />
<input name="myCheck[]" type="checkbox" value="aranciata" />
quando carichi la pagina la prima volta il valore birra starà nella variabile
$_POST['myCheck'][1]
mentre la seconda volta la troverai su
$_POST['myCheck'][2]
Quindi confrontarlo con un eventuale session risulta impossobile. io risolverei mettendo un indice di sicura stabilità, tipo l'id della tabella aperitivi
Codice PHP:
<input name="myCheck[<?php echo $row_Rs_portate['id']; ?>]" type="checkbox" value="<?php echo $row_Rs_portate['aperitivi']; ?>" />
a questo punto sai che myCheck[5] sarà sempre la birra e quindi puoi mettere tutto l'array myCheck dentro session
Codice PHP:
$_SESSION['myCheck']=$_POST['myCheck'];
e quando crei la pagina puoi confrontarli
Codice PHP:
<form action="preventivo.php" method="post">
<?php do { ?>
<h4>Aperitivi </h4>
<div id="aperitivi">
<?php echo $row_Rs_portate['aperitivi'];?>
<input name="myCheck[<?php echo $row_Rs_portate['id']; ?>]" type="checkbox" <?php echo (isset($_SESSION['myCheck'][$row_Rs_portate['id']])) ? "checked=\"checked\" ":""; ?> value="<?php $row_Rs_portate['aperitivi']; ?>" />
<?php } while ($row_Rs_portate = mysql_fetch_assoc($Rs_portate)); ?>
<input name="" type="submit" />
</form>
</div>
P.S. non so se sia utile avere una sintassi così per il ciclo while, in questo modo anche se la tabella è vuota crea esegue la prima istanza del ciclo, e questo potrebbe creare problemi