Version complète: sur le forum Webmaster Hub : <input type="checkbox" ...>
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > (X)HTML et CSS
Nils
Bonjour,

avec le code suivant :
CODE
<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.
MarvinLeRouge
Tu obtiens ce message d'erreur en quoi faisant, en tulisant quel programme, quel valideur ?
Qu'entends-tu par "passe bien" ?

Sois plus précis
Nils
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)
Nils
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.
Nils
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.
Portekoi
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... IMSTP6.gif

Logique smile.gif

Sinon, tu peux utiliser ceci si tu veux :

CODE
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 :

CODE
<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 smile.gif

A toi de jouer

Portekoi
Nils
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.
MarvinLeRouge
Salut,

Tu peux aussi récupérer l'ensemble des index de ton tableau $_POST grâce à la fonction array_keys, et faire en fonction.
Nils
ok, merci.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.