Aller au contenu

<input type="checkbox" ...>


Sujets conseillés

Posté

Bonjour,

avec le code suivant :

<div id="corps_de_la_page">

<form name="form_ajout_resa" action="user_proc_act_ajout-resa.php" method="post">

   <p>
   <input type="text" name="baba" value="teste">
   <input type="checkbox" name="clause" value="1">
   </p>

<p align="center"><input type="submit" name="envoyer" value="Valider"></p>

</form>
</div>

j'obients "index non défini" pour la checkbox "clause", alors que la zone de texte "baba" passe bien, dans le fichier appelé par le bouton submit.

Quelqu'un aurait-il des idées à me soumettre ?

Merci beaucoup.

Nils.

Posté

dans le fichier user_proc_act_ajout-resa.php

j'utilise des variables $_POST["..."] pour récupérer le contenu des champs, la variable $_POST["clause"] donne le message d'erreur "index indéfini", alors, que la variable $_POST["baba"] me retourne bien "teste".

Est-ce que cela peut t'aider ? Merci.

(par contre, je ne sais pas ce qu'est un valideur)

Posté

je viens de découvrir autre chose :

quand je positionne l'attribut "checked" dans mon input type="checkbox", la variable $_POST["clause"] existe, et quand j'enlève l'attribut "checked", j'obient le message d'erreur (index indéfini), est-ce normal ?, si oui, comment faut-il faire pour ne pas avoir d'erreur, même si la case n'est pas cochée ?

Merci.

Posté

et je viens de trouver encore autre chose sur la page : http://www.phpindex.com/trucsetastuces/tru...php3?element=90 => "La difficulté dans ce genre de cas est qu'une case non cochée n'est pas du tout envoyée a la validation du formulaire. "

est-ce que ce mode de fonctionnement est juste ?, en tout cas il semble que oui, mais ça parait abérant de ne pas avoir la case non cochée envoyée.

merci de me dire si cela est bien vrai.

Nils.

Posté

Bonjour,

Au contraire, si la case n'est pas cochée, donc non activée ou non choisie par l'utilisateur, pourquoi veux tu la passer à ton fichier de traitement... :fou:

Logique :)

Sinon, tu peux utiliser ceci si tu veux :

reset ($_POST);
$cpt = 0;
while (list ($key, $val) = each ($_POST))
{  
if (strpos("_".$key,"case")==0)
    {
      //Ton traitement pour les champs de type NON Checkbox
    }
//Sinon si c'est un checkbox
else if(strpos("_".$key,"case")>0)
   {
     //Ton traitement ici
   }
}

Et dans ton formulaire :

<input type="checkbox" name="case_valeur1" value="1"> 1<br>
<input type="checkbox" name="case_valeur2" value="1"> 2<br>

J'ai pas testé le code car je n'ai pas php au boulot :)

A toi de jouer

Portekoi

Posté

Merci Portekoi,

oui, effectivement, comme value est la valeur quand c'est coché, on ne peut pas retourner value, quand c'est pas coché, sinon, on aurait la même valeur.

En fait, je me suis débrouillé avec un isset(), et ça marche.

Merci en tout cas. à+.

Nils.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...