OVH Cloud OVH Cloud

checkbox

2 réponses
Avatar
Stephane L
bonjour,

J'ai lu les tuto sur comment construire un formulaire et récupérer les
checkbox avec le principe du tableau.
Ma question est la suivante :
Au moment ou je construis mon formulaire, je ne connais pas le nombre de
case a cocher que je vais avoir dans mon formulaire, (18-19-20).
Lorsque l'on post avec le système du tableau on ne post que les case qui
son cocher.
Peut on envoyer les cases qui ne sont pas cochées, cela m'éviterai une
nouvelle requête SQL.

j'aurai voulu C1=1&C2=1.....&C18=0&C19=0&C20=1

Merci a tous.

2 réponses

Avatar
Paul Delannoy
Stephane L a écrit:
bonjour,

J'ai lu les tuto sur comment construire un formulaire et récupérer les
checkbox avec le principe du tableau.
Ma question est la suivante :
Au moment ou je construis mon formulaire, je ne connais pas le nombre de
case a cocher que je vais avoir dans mon formulaire, (18-19-20).
Lorsque l'on post avec le système du tableau on ne post que les case qui
son cocher.
Peut on envoyer les cases qui ne sont pas cochées, cela m'éviterai une
nouvelle requête SQL.
Non on ne peut pas les envoyer, mais tester si elles sont remplies, oui

on peut : la fonction isset appliquée aux éléments $_POST[indice] avec
les indices qui vont bien devrait t'aider.

j'aurai voulu C1=1&C2=1.....&C18=0&C19=0&C20=1


En extrapolant ton exemple :
$ch="";
for ($i=1;$i<21;$i++) { $ind="C$i";
if (isset($_POST[$ind])) $ch.="$ind=1";
else $ch .= "$ind=0";
}
echo $ch;
Pas testé, je suppose que les cases à cocher se nomment elles même C1,
C2,..., C20.
J'eqça.


Merci a tous.


Avatar
Vincent Lascaux
Peut on envoyer les cases qui ne sont pas cochées, cela m'éviterai une
nouvelle requête SQL.


Rajoute dans ton formulaire un champ invisible qui contient le nombre de
checkbox sur la page (et qui sera donc automatiquement renvoyé).
Fais attention aux éventuels problèmes de sécu : il est facile de faire une
page invalide qui renvoit un champ quelconque à la place du nombre de
checkbox, donc tu ne peux être sur que c'est ce qu'il y avait dans ta
requête SQL que si tu fais confiance à ton visiteur...


--
Vincent