ré-affichage checkbox depuis bdd
Salutatous,
j'ai un 1er fichier comportant un formulaire qui permet d'envoyer dans une bdd des choix à partir de case à cocher (checkbox).
j'ai un 2e fichier qui permet d'afficher ces choix.
jusque-là tout se passe bien :)
j'ai ensuite un 3e fichier qui doit me permettre de modifier ces choix... et c'est là où je bloque car je n'arrive pas à ré-afficher ces choix dans les checkbox :(
code de mon 1er fichier qui permet de cocher les checkbox :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php
require('traitement.php');
?>
... / ...
<strong>PERMIS</strong><br />
<input type="checkbox" value="Voiture" name="permis[]" <?php if (isset($_POST['permis']) && in_array('Voiture', $_POST['permis'])) echo 'checked="checked"'; ?> />
Voiture
<input type="checkbox" value="Bâteau" name="permis[]" <?php if (isset($_POST['permis']) && in_array('Bâteau', $_POST['permis'])) echo 'checked="checked"'; ?> />
Bâteau
<input type="checkbox" value="Poids lourd" name="permis[]" <?php if (isset($_POST['permis']) && in_array('Poids lourd', $_POST['permis'])) echo 'checked="checked"'; ?> />
Poids lourd
<input type="checkbox" value="Plongée" name="permis[]" <?php if (isset($_POST['permis']) && in_array('Plongée', $_POST['permis'])) echo 'checked="checked"'; ?> /> |
code de mon fichier "traitement.php" qui permet l'enregistrement en base :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| // gestion message erreur si aucune case n'est cochée :
if (!is_array($_POST['permis'])) {
$permis_liste = '';
} else {
$permis_liste = implode(', ', $_POST['permis']);
}
// requete SQL
$sql = 'INSERT INTO ma_table VALUES (
"'.$permis_liste.'"
)'; |
code de mon 3e fichier qui doit permettre la modification :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
$requete_sql = "SELECT permis FROM ma_table WHERE login='" . $_SESSION['login'] . "'";
... / ...
while ( list ( $permis ) = mysql_fetch_array($requete_sql_bis)) {
?>
... / ...
<input type="checkbox" value="Voiture" name="permis[]" <?php if (isset($permis) && in_array('Voiture', $permis)) echo "checked"; ?> />
Voiture
<input type="checkbox" value="Bâteau" name="permis[]" <?php if (isset($permis) && in_array('Bâteau', $permis)) echo "checked"; ?> />
Bâteau
<input type="checkbox" value="Poids lourd" name="permis[]" <?php if (isset($permis) && in_array('Poids lourd', $permis)) echo "checked"; ?> />
Poids lourd
<input type="checkbox" value="Plongée" name="permis[]" <?php if (isset($permis) && in_array('Plongée', $permis)) echo "checked"; ?> />
... / ... |
si je fais un echo sur $permis, ça m'affiche bien mes choix comme ceci :
Voiture, Bâteau, Plongée
par contre ces choix ne se ré-affiche pas dans les cases à cocher correspondantes et j'ai le message d'erreur suivant :
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /blablabla/blablabla.php on line ...
j'ai donc placer ce code juste avant mon formulaire de modification :
Code:
1 2 3 4 5 6 7
| $permis = array();
if (is_array($permis)) {
var_dump($permis);
} else {
echo '<br /><br />ce n\'est pas un tableau<br /><br />';
} |
je n'ai plus le message d'erreur :)
et ça m'affiche ceci :
array(0) { }
par contre mes checkbox ne sont toujours pas cocher de mes choix : Voiture, Bâteau, Plongée
une aide serait la bienvenue, merci d'avance...