Checkbox avec POST

Résolu/Fermé
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 - 18 sept. 2007 à 14:20
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 - 19 sept. 2007 à 17:13
Slt,

j'ai un petit souci avec les checkbox :

j'ai un formulaire avec 3 checkbox, lorsque je sélectionne l'une d'entre elles je déclenche l'envoie du formulaire avec un onClick="FORM.submit();"

Seule la checkbox sélectionné est "posté" avec la valeur "on".

Comment faire pour que les 2 autres checkbox soient postés avec la valeur "off" ?
A voir également:

6 réponses

pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
18 sept. 2007 à 15:39
J'ai jamais décrit de comportement de boutons radio, 1 on et 2 off c'etait pour l'exemple, on pourrait très bien avoir 2 on et 1 off.

J'explique :

restriction d'acces à des repertoires avec sql

login pass mail rep1 rep2 rep3
toto titi toto@toto.fr 1 0 1

Si =1 la case est cochée, si =0 elle n'est pas cochée.

Je veux ,avec un clic pour cocher ou décocher, générer une requête SQL qui mettra la table à jour.

Voilà pourquoi je souhaite récupérer toutes les valeurs des cases à cocher.
4
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
19 sept. 2007 à 09:39
salut,

la valeur renvoyée elle-même, on s'en tape.
tu pourrais vouloir 1 = 'casimir' et 2 = 'pandi panda' que je te dirais la même chose !

tu décris :
Seule la checkbox sélectionné est "posté" avec la valeur "on".
Comment faire pour que les 2 autres checkbox soient postés avec la valeur "off" ?


si à cela on ajoute le déclenchement du 'submit()' sur 'onChange' et cela fait que tu as 3 options mais que seule une et une seule peut être cochée.

propositions multiples + choix libre = checkbox :
Les cases à cocher (et les boutons « radio ») sont des interrupteurs marche/arrêt qui peuvent être actionnés par l'utilisateur. L'interrupteur est sur « marche » quand l'attribut checked de l'élément de commande est spécifié. Lors de la soumission du formulaire, seules les commandes de cases à cocher sur « marche » peuvent devenir des commandes réussies.
Dans un formulaire, plusieurs cases à cocher peuvent partager le même nom de commande. Ainsi, par exemple, les cases à cocher permettent aux utilisateurs de sélectionner plusieurs valeurs pour la même propriété. On utilise l'élément INPUT pour créer une commande de case à cocher.


propositions multiples + choix unique = radio.
Les boutons « radio » sont analogues aux cases à cocher, à la différence que, quand plusieurs boutons partage le même nom de commande, alors ils s'excluent mutuellement : quand l'un est mis sur « marche », tous les autres avec le même nom se mettent sur « arrêt ».

et pour savoir comment poster les valeurs qui ne sont pas cochées, pour moi c'est un problème qui ne pose pas puisque tu sais déjà qui est coché.
si dans ton script tu testes chaque valeur tu sauras que valeur renvoyée = 'on', sinon valeur = 'off'.
if (isset($_POST['check1']))
{
        $value1 = 'on';
        $value2 = 'off';
        $value3 = 'off';
}
else if (isset($_POST['check2']))
{
        $value1 = 'off';
        $value2 = 'on';
        $value3 = 'off';
}
elseif (isset($_POST['check3']))
{
        $value1 = 'off';
        $value2 = 'off';
        $value3 = 'on';
}

donc si tu veux toujours déclencher l'envoi sur le changement de valeur des checkbox, je répète et je maintiens qu'il ne sert à rien de vouloir envoyer les valeurs non cochées puisque tu peux les évaluer dans le script cible du formulaire.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
18 sept. 2007 à 21:07
Bonjour pitxu,
il y a un problème avec ton code. Dès que quelcun fait un déclic sur n'importe quelle case, le submit se déclenche. Il faut d'abord laisser les gens choisir les cases et ensuite déclcencher submit avec un bouton soumettre.

Serge.
2
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
19 sept. 2007 à 17:11
Dalida, je suis d'accord avec toi ... en partie.

Vous n'avez visiblement jamais développé un tableau avec des checkbox dynamiques sinon vous seriez au jus.

Comment détectes-tu qu'une checkbox a été décoché ?

ou comment fais-tu la différence entre une check box décoché et la première visite sur la page ou rien n'est posté ?
if (!isset($checkbox1)) { ....} ne fait pas la différence.

Ce que vous dites est vrai ... pour du statique, pas pour du dynamique.

La solution, je vous la donne puisqu'on m'a répondu sur un autre forum :

<input type="checkbox" name="checkbox1" onClick="document.form1.chk1.value=1;form1.submit();">
<input type="hidden" name="chk1" value="">

Ainsi, peu importe la valeur du checkbox, il ne nous sert qu'à afficher les valeurs relatives à la base de données SQL et à déclencher le POST. Les champs hidden seront postés indépendamment et c'est sur leur propriété value qu'on pourra effectuer des tests.
2
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
18 sept. 2007 à 14:28
Pour être plus clair :

<?
if (isset($_POST)) extract ($_POST);
if (isset($checkbox1) || isset($checkbox2) || isset($checkbox3)) phpinfo(INFO_VARIABLES);
?>
<form name="form1" method="post" action="test.php">
<input type="checkbox" name="checkbox1" onClick="form1.submit();">
<input type="checkbox" name="checkbox2" onClick="form1.submit();">
<input type="checkbox" name="checkbox3" onClick="form1.submit();">
</form>
1
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
18 sept. 2007 à 15:05
Bonjour,

pourquoi tu veux les récupérer avec la valeur "off"? je ne vois pas l'intérêt.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
18 sept. 2007 à 15:19
salut,

je reprends la remarque de Pi_Xi, quel intérêt ?
si l'un est à 'on' les deux autres sont à 'off', pas la peine de balader la valeur.

et tu décris là un comportement de boutons radio. un seul cliqué avec une valeur 'on', tous les autres à 'off'.

1
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
19 sept. 2007 à 17:13
Serge, non c'est normal chaque action sur un checkbox entraine le post du formulaire et une requete sql.
0