Ciao a tutti!
ho cercato nel sito e sul forum senza trovare uno spunto per un problema legato alla gestione degli array e dei checkbox.
Ho strutturato un form che tramite checkbox inserisce nel DB alcune preferenze dell'utente, in un unico campo. Lo script è organizzato in due blocchi:
1 - se nella tabella del DB non ci sono dati riguardanti l'utente, viene visualizzato il form da riempire -> l'array è inserito in un solo campo tramite implode(), e i singoli elementi sono separati da virgole;
2 - se nella tabella esistono dati, questi sono estratti e visualizzati in vista di una possibile modifica -> l'array è estratto tramite explode() e letto con un ciclo while.
Ho un problema nella seconda parte dello script, qualcosa non funziona nell'utilizzo di in_array e vengono spuntati tutti i checkbox... o nessuno. Potreste darmi un suggerimento per favore?
ho cercato nel sito e sul forum senza trovare uno spunto per un problema legato alla gestione degli array e dei checkbox.
Ho strutturato un form che tramite checkbox inserisce nel DB alcune preferenze dell'utente, in un unico campo. Lo script è organizzato in due blocchi:
1 - se nella tabella del DB non ci sono dati riguardanti l'utente, viene visualizzato il form da riempire -> l'array è inserito in un solo campo tramite implode(), e i singoli elementi sono separati da virgole;
2 - se nella tabella esistono dati, questi sono estratti e visualizzati in vista di una possibile modifica -> l'array è estratto tramite explode() e letto con un ciclo while.
Ho un problema nella seconda parte dello script, qualcosa non funziona nell'utilizzo di in_array e vengono spuntati tutti i checkbox... o nessuno. Potreste darmi un suggerimento per favore?
Codice:
//query su tabella
$query = "SELECT * FROM `settore` WHERE username = '".$_SESSION['username']."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
//mi interessa quanto presente nel campo settore, che è un array imploso i cui elementi sono separati da una virgola e uno spazio
$interessi = $row['settore'];
// explode per togliere la virgola e lo spazio e listare con un ciclo while gli elementi dell'array
$interessi = explode(", " , $interessi);
// ciclo il mio array
while ($row = mysql_fetch_array($result))
{
// controllo se i dai sono recuperati dal mio array
$settore = $row[settore];
echo "$settore<br>";
// se il valore [ nel mio array, allora la casella del form è selezionata
if(in_array($settore, $interessi)) { $checked="checked"; }else{ $checked=""; }
}
?>
<html>
<input name="interessi[]" value="pallavolo" type="checkbox" <?php echo $checked; ?> > pallavolo<br>
<input name="interessi[]" value="pesca" type="checkbox" <?php echo $checked; ?> > pesca<br>
<input name="interessi[]" value="calcio" type="checkbox" <?php echo $checked; ?> > calcio<br>
<input name="interessi[]" value="pallacanestro" type="checkbox" <?php echo $checked; ?> > pallacanestro<br>
<\html>