Pb insertion par des checkbox
louetzhang
-
crabs Messages postés 909 Statut Membre -
crabs Messages postés 909 Statut Membre -
Pour ma question précédente c'est trouvé, mais maintenant j'ai un souci :
Lorsque je veux insérer des données via un formulaire utilisant des checkbox, dans mysql, les données saisies dans le champ correspondant aux checkbox est ARRAY pour toutes les valeurs.
Comment afficher la valeur réelle choisies ? D'ailleurs comment gérer la multiselection ? est ce que ds mysql toutes les valeurs seront affichées a la suite ?
merci de votre réponse, je galere
Lorsque je veux insérer des données via un formulaire utilisant des checkbox, dans mysql, les données saisies dans le champ correspondant aux checkbox est ARRAY pour toutes les valeurs.
Comment afficher la valeur réelle choisies ? D'ailleurs comment gérer la multiselection ? est ce que ds mysql toutes les valeurs seront affichées a la suite ?
merci de votre réponse, je galere
A voir également:
- Pb insertion par des checkbox
- Insertion table des matières word - Guide
- Touche insertion clavier - Guide
- Insertion video powerpoint - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
3 réponses
Salut,
Le problème de HTTP c'est qu'il ne transmet que les checkbox effectivement
coché.
Pour retrouver ce qui a été coché, il faut initialement que toutes les checkbox
aient un attribut 'value' différent. Ensuite, si tu mets une expression du type
val[numero] dans ce champs, les cases cochés seront rangés dans un tableau
associatif de nom $val. La clé de ce tableau sera le numéro (qui peut être
alphanumérique) et la valeur sera 'on'.
Essaies ce formulaire :
Et le script traite.php
Donc pour traiter correctement les checkbox, le script qui reçoit les données
du formulaire doit connaitre le nom de tous les checkboxs afin de savoir si
elles sont cochés ou pas.
A+, crabs
Le problème de HTTP c'est qu'il ne transmet que les checkbox effectivement
coché.
Pour retrouver ce qui a été coché, il faut initialement que toutes les checkbox
aient un attribut 'value' différent. Ensuite, si tu mets une expression du type
val[numero] dans ce champs, les cases cochés seront rangés dans un tableau
associatif de nom $val. La clé de ce tableau sera le numéro (qui peut être
alphanumérique) et la valeur sera 'on'.
Essaies ce formulaire :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>POST DE CHECK BOX</title> </style> </head> <body> <h1>POST DE CHECK BOX</h1> <form method="POST" action="traite.php"> <p><input type="checkbox" name="a[v1]"> val1</p> <p><input type="checkbox" name="a[v2]"> val2</p> <p><input type="checkbox" name="a[v3]"> val3</p> <p><input type="submit" name="ok" value="ok"></p> </form> </body> </html>
Et le script traite.php
<? header( "Content-type: text/plain" ) ; echo "POST=" ; print_r( $_POST ) ; $checkbox = $_POST['a'] ; echo "checkbox=" ; print_r( $checkbox ) ; ?>
Donc pour traiter correctement les checkbox, le script qui reçoit les données
du formulaire doit connaitre le nom de tous les checkboxs afin de savoir si
elles sont cochés ou pas.
A+, crabs
Merci beaucoup.
Le probleme a présent est que la valeur enregistrée dans ma table mysql est ARRAY au lieu de la valeur correspondant à celle cochée dans mes checkbox.
savez vous pourquoi ?
Le probleme a présent est que la valeur enregistrée dans ma table mysql est ARRAY au lieu de la valeur correspondant à celle cochée dans mes checkbox.
savez vous pourquoi ?
Salut,
Je pense que l'insert ou l'update est fait avec le nom du tableau et non le nom
d'une case du tableau.
Sur le formulaire que j'ai écrit plus haut, si à chaque valeur on associe un
champs YESNO, il faut faire un truc du genre :
A+, crabs
Je pense que l'insert ou l'update est fait avec le nom du tableau et non le nom
d'une case du tableau.
Sur le formulaire que j'ai écrit plus haut, si à chaque valeur on associe un
champs YESNO, il faut faire un truc du genre :
$checkboxes = array( 'v1', 'v2', 'v3' ) ; // toutes les checkbox du formulaire foreach( $checkboxes as $val ) if ( array_key_exists( $val, $_POST ) ) $$val = 'Y' ; else $$val = 'N' ; // La requete $sql = "INSERT INTO tbl VALUES( ..., '$v1', '$v2', '$v3', ... )" ;
A+, crabs