Bonjour à tous,
j'ai un souci avec une gestion de cases à cocher et la comparaison de valeurs récupérées d'une db.
Ce n'est pas évident à expliquer ??!!!
affichage d'actions sous forme de cases à cocher
<input type="checkbox" name="droits[1]]" value="7" /> Action 1
<input type="checkbox" name="droits[1]]" value="9" /> Action 2
<input type="checkbox" name="droits[1]]" value="10" /> Action 3
<input type="checkbox" name="droits[7]]" value="16" /> Action 1
<input type="checkbox" name="droits[7]]" value="17" /> Action 2
<input type="checkbox" name="droits[7]]" value="19" /> Action 3
<input type="checkbox" name="droits[7]]" value="20" /> Action 3
je poste le formulaire et j'enregsitre le tableau (serialize) dans un champs
Récupération des valeurs enregistrées comme ceci :
Array
(
[1] => Array
(
[0] => 7
[1] => 9
)
[7] => Array
(
[1] => 19
[2] => 20
)
)
comment faire pour effectuer une comparaison entre le tableau et les cases à cocher
et associer la valeur checked="checked" si le cas.
merci
tu peux utilise se code :p
<?php
$droits_db = 'a:2:{i:1;a:3:{i:0;s:1:"7";i:1;s:1:"9";i:2;s:2:"10";}i:7;a:2:{i:0;s:2:"17";i:1;s:2:"19";}}';
$droits_db = unserialize($droits_db);
function checked($array,$valeur){
foreach($array as $k => $v){
if($v == $valeur){
return true;
}
}
return false;
unset($array);
}
if(isset($_POST)){
$droits = $_POST"droits"];
echo "<pre>";
print_r($droits);
echo "</pre>";
}
?>
<form method="post">
<input type="checkbox" name="droits[1]]" value="7"
<?php
if(checked($droits_db[1],7)){
echo "checked='checked'";
}
?>
/> Action 1
<input type="checkbox" name="droits[1]]" value="9"
<?php
if(checked($droits_db[1],9)){
echo "checked='checked'";
}
?>/> Action 2
<input type="checkbox" name="droits[1]]" value="10"<?php
if(checked($droits_db[1],10)){
echo "checked='checked'";
}
?> /> Action 3
<input type="checkbox" name="droits[7]]" value="16" <?php
if(checked($droits_db[7],16)){
echo "checked='checked'";
}
?>/> Action 1
<input type="checkbox" name="droits[7]]" value="17" <?php
if(checked($droits_db[7],17)){
echo "checked='checked'";
}
?>/> Action 2
<input type="checkbox" name="droits[7]]" value="19" <?php
if(checked($droits_db[7],19)){
echo "checked='checked'";
}
?>/> Action 3
<input type="checkbox" name="droits[7]]" value="20" <?php
if(checked($droits_db[7],20)){
echo "checked='checked'";
}
?>/> Action 3
<input type="submit">
</form>
le variable droits_db contient la valeur du base de données mysql