checkbox multivalore

[email protected]

Nuovo Utente
20 Mar 2015
3
0
0
Ciao,
ho un problema simile con i checkbox multivalore inseriti all'interno di un cms.

I checkbox della form si riferiscono a categorie tipo Moda, Alimenti, Sport, Libri ecc. e li genero dinamicamente con un ciclo while pescando da una tabelle del db. Ora se chi lavora sul cms seleziona i suoi checkbox, perché li associa a un determinato negozio, io li recupero in questo modo:

$categoria = serialize($_POST['categorie']); // nello specifico recupero gli id

In effetti, l'inserimento a DB sembra funzionare. Infatti sul DB, nella tabella negozi, me li salva in un campo con una dicitura del genere

a:2:{i:0;s:1:"8";i:1;s:2:"18";}

Ora li voglio recuperare e lo faccio con la funzione unserialize in questo modo

$categoria_id = $sql_ris['categoria_id']; // salvo tutto nella variabile $categoria_id dopo la chiamata a db e mysql_fetch_array
$single_value=unserialize($categoria_id); // qui unserializzo

Ora se stampo a video $single_value mi restituisce un array del tipo

Array ( [0] => 8 [1] => 18 )

Il problema è che io dovrei confrontare ogni singolo valore (id) di questo array con gli id delle categorie che genero dinamicamento per creare l'elenco di tutte le categorie, in modo da rendere checked quelle corrispondenti.

Ma se faccio questo confronto

if($single_value==$id_categoria) ...

non ottengo alcun risultato.

Potresti gentilmente darmi delle dritte, sempre se ciò che ho scritto risulta comprensibile.

Grazie
Pino
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male potresti provare così

PHP:
<?php
//...
if (in_array($id_categoria, $single_value)) {
    echo "checked";
}
//....
?>
 

[email protected]

Nuovo Utente
20 Mar 2015
3
0
0
Ciao, grazie per la risposta, purtroppo il codice mi restituisce un worning, e cioè:

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /web/htdocs/test/admin/add_coupon.php on line 259 value="8" id="Arredamento Casa e Giardi" />Arredamento Casa e Giardi


Ecco il codice dove ho inserito il controllo che mi hai suggerito:


<?php
$sql_cat = @mysql_query("SELECT * FROM categorie order by nome asc ") or die(mysql_error());
while($ris_cat = mysql_fetch_array($sql_cat)) {
$id_categoria=$ris_cat['id_categoria'];
$nome_cat=stripslashes($ris_cat['nome']);
?>

<label>
<input type="checkbox" name="categorie[]" <?php if (in_array($single_value, $id_categoria)) { echo "checked";} ?>value="<?=$id_categoria?>" id="<?=$nome_cat?>" /><?=$nome_cat?>
</label>
<br />

<?php
}
?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
spiega un po' meglio
$single_value
$id_categoria
cosa sono? ha perlato di array, mam da quanto hai postato, non mi senbrano, ora do un occhio
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
caso 1) $single_value e $id_categoria non sono array
PHP:
<?php
$sql_cat = @mysql_query("SELECT * FROM categorie order by nome asc ") or die(mysql_error());
while($ris_cat = mysql_fetch_array($sql_cat)) {
	$id_categoria=$ris_cat['id_categoria'];
	$nome_cat=stripslashes($ris_cat['nome']);
	$ch="";
	if($single_value==$id_categoria){$ch="checked";}
?>
	<label>
	<input type="checkbox" name="categorie[]" <?php echo $ch; ?>value="<?=$id_categoria?>" id="<?=$nome_cat?>" /><?=$nome_cat?>
	</label>
	<br />
<?php
}
?>
caso 2) $single_value è un array e $id_categoria non array
PHP:
<?php
$sql_cat = @mysql_query("SELECT * FROM categorie order by nome asc ") or die(mysql_error());
while($ris_cat = mysql_fetch_array($sql_cat)) {
	$id_categoria=$ris_cat['id_categoria'];
	$nome_cat=stripslashes($ris_cat['nome']);
?>
	<label>
	<input type="checkbox" name="categorie[]" <?php if (in_array($id_categoria, $single_value)) { echo "checked";} ?>value="<?=$id_categoria?>" id="<?=$nome_cat?>" /><?=$nome_cat?>
	</label>
	<br />
<?php
}
?>
caso 3) $single_value non è un array e $id_categoria è array
PHP:
<?php
$sql_cat = @mysql_query("SELECT * FROM categorie order by nome asc ") or die(mysql_error());
while($ris_cat = mysql_fetch_array($sql_cat)) {
	$id_categoria=$ris_cat['id_categoria'];
	$nome_cat=stripslashes($ris_cat['nome']);
?>
	<label>
	<input type="checkbox" name="categorie[]" <?php if (in_array($single_value, $id_categoria)) { echo "checked";} ?>value="<?=$id_categoria?>" id="<?=$nome_cat?>" /><?=$nome_cat?>
	</label>
	<br />
<?php
}
?>
caso 4) sia $single_value che $id_categoria sono entrambi array, questa potrebbe essere una soluzione
PHP:
<?php
$sql_cat = @mysql_query("SELECT * FROM categorie order by nome asc ") or die(mysql_error());
while($ris_cat = mysql_fetch_array($sql_cat)) {
	$id_categoria=$ris_cat['id_categoria'];
	$nome_cat=stripslashes($ris_cat['nome']);
?>
	<label>
	<input type="checkbox" name="categorie[]"
	<?php if (count(array_intersect($single_value, $id_categoria)) != 0) { echo "checked";} ?>
	value="<?=$id_categoria?>" id="<?=$nome_cat?>" /><?=$nome_cat?>
	</label>
	<br />
<?php
}
?>
vedi tu quale è il tuo caso

dimenticavo: non usare il silent @ gli errori vanno eliminati non nascosti
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Input checkbox in CSS HTML e CSS 0
G Invio di più valori con la stessa checkbox PHP 4
G form invio multiplo con checkbox PHP 12
MarcoGrazia jquery validate() controllo checkbox jQuery 2
M form con checkbox PHP 8
D Come gestire un singolo checkbox PHP 10
S Selezionare e deselezionare checkbox Javascript 0
S [PHP] Come mantenere selezionato checkbox dopo aver cliccato submit PHP 7
M Filtrare risultati con valori checkbox passati con jquery jQuery 2
M [HTML] consiglio su label e checkbox riguardo l'allineamento HTML e CSS 3
P [PHP] Controllo al checkbox privacy PHP 6
C [PHP] Checkbox in tabella PHP 7
M [Visual Basic] Cambiare lo stato in checked delle checkbox richiamando dati dal database Visual Basic 6
M [Visual Basic] Creare checkbox dinamicamente in TabControl Visual Basic 1
L [PHP] CHECKBOX DA SELEZIONARE IN UNA TABELLA PHP 4
T [PHP] Checkbox E Valori Multipli In Una Colonna PHP 1
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
C [Javascript] Mostrare un div cliccando una checkbox Javascript 0
G [Javascript] Selezionare una checkbox in maniera condizionata Javascript 5
A [Javascript] Impostare immagine sfondo da checkbox, sito web Javascript 1
M PHP - Checkbox - Mysql PHP 2
Monz94 [Javascript] [HTML] Creare Checkbox o Radio con Immagini Javascript 0
M [PHP] Far rimanere biffata checkbox dopo aggiornamento pagina PHP 24
T [Javascript] un controllo con checkbox che non... controlla... Javascript 3
ientii [PHP] Gestione CheckBox PHP 1
bubino8 [PHP] Variabile da multipla Checkbox PHP 2
E [PHP] valore checkbox PHP 1
M PHP/SQL Inserire più valori in una colonna di tipo integer - Checkbox - PHP 3
M [PHP] Checkbox e valori multipli in una colonna PHP 10
M [HTML] Problema Checkbox HTML e CSS 3
A [HTML] Checkbox non visibili su tutti i browser HTML e CSS 3
F Alert selezione checkbox jQuery 6
U [PHP - RISOLTO] Tabella dinamica: colonne selezionate da checkbox PHP 40
M [Javascript] Deselezionare checkbox Javascript 1
giancadeejay [PHP] INSERT into tabella tramite scelta checkbox PHP 0
giancadeejay [PHP] checkbox ad ogni riga estratta dal db PHP 13
Fede72 Controllare le checkbox con PHP PHP 6
L [PHP] selezionare righe di una tabella con le checkbox e cancellarle PHP 2
M [PHP] Checkbox: inserimento nel db e lettura dal db PHP 20
R checkbox in un form Presentati al Forum 4
krm91 [Javascript] Checkbox e print Javascript 0
P [PHP] checkbox e sua memorizzazione nel db PHP 31
W formail con checkbox asp Classic ASP 19
M form php con checkbox PHP 4
S Assegnare valori mysql a checkbox PHP 0
S inserimento valori checkbox in db Classic ASP 4
J mostra/nascondi immagine in base al checkbox Javascript 1
A Aiutino su PHP e MySQL [Checkbox] PHP 2
L dati da checkbox passati a script php via json jQuery 5
M Inserire nel DB i dati provenienti da checkbox e recuperarli poi dal DB per la pagina di edit PHP 20

Discussioni simili