Version complète: sur le forum Webmaster Hub : probleme check box
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
burinho
Bonjour,

j'aimerais savoir comment récupérer les info valider par un questionnaire utilisant des checbox afin de les valider sur mysql

du style

vote sexe : femme homme
profession : salarier sans emploi
enroc
Salut,
juste pour dire : pour le sexe, il ne te faut pas plutôt un radio :
[] Femme
[] Homme
?

Edit : voici un code de test (en get pour que tu vois viens les variables à récupérer)
CODE
<form action="" method="get">
Vous êtes<br>
<input type="radio" name="sexe" value="femme"> une femme<br>
<input type="radio" name="sexe" value="homme"> un homme<br>
<input type="checkbox" name="sexeHomme"> un homme<br>
<input type="checkbox" name="sexeFemme"> une femme<br>
<input type="checkbox" name="nom" value="valeur"> checkbox avec value<br>
<input type="submit">
</form>
burinho
en effet,

donc in va dire que j'ai du checkbox et un radio
MS-DOS_1991
Salut burinho smile.gif

pour cette sorte de questionnaire, ne vaudrait-il pas mieux utiliser des radios ?

tu ne peut pas etre a la fois femme et homme ni salarié et sans emploi IMSTP6.gif laugh.gif

dans ce cas, le code html serait:

HTML
<form action="trait.php" method="post">
<p>
<input type="radio" name="sexe" value="Femme" />Femme
<input type="radio" name="sexe" value="Homme" />Homme
</p>
<p>
<input type="radio" name="travail" value="Salarie" />Salari&eacute;
<input type="radio" name="travail" value="Sans_Emploi" />Sans Emploi
</p>
</form>


et en php:

CODE
<?php
$sexe = $_POST['sexe'];
echo $sexe;
$travail = $_POST['travail'];
echo $travail;
?>


edit: oups posté trop tard dslé pour le rabachage lol

Sinon ba pour des checkboxes c pareil... je crois smartass.gif
burinho
[quote=MS-DOS_1991,jeudi 30 juin 2005, 12h49]
<?php
$sexe = $_POST['sexe'];
echo $sexe;
$travail = $_POST['travail']
?>
[/code]

je suis d'acccors pour les bouton radio et jusque là c'est bon, sauf pour le echo $sexe car je vois a quoi cela sert

donc j'avais penser a
CODE
if ($sexe)=="homme"
{
sql_valid ............
}
else
     ($sexe)=="femme"
{
sql_valid ............
}
enroc
Re,

Pour le "echo", il s'agit juste de bien t'assurer du contenu de la variable ! Normalement tu n'en as pas besoin.
Pour ce qui est des boutons radio, il doivent avoir le même nom, et alors c'est comme pour le reste : $_POST["sexe"], qui contiendra soit homme soit femme.
Je t'invite tout de même à essayer le code html ci-dessus, qui te montre l'utilisation des radios et des checkbox.
burinho
et pour les checkbox, il y a quelqu'un qui aurait une idée, je sais qu'il faut utiliser une boucle le truc que j'ai jamais tro p compris
enroc
As-tu essayé le bout de html que je t'avais envoyé :
[ ] oui
[x] non

Ou alors t'as pas bien compris, (ça arrive, faut pas désespérer wink.gif )

Dernier essai :

Si tu fais une checkbox comme ça :
CODE
<input type="checkbox" name="toto" />

et si l'utilisateur a coché quelque chose tu auras
CODE
$_POST["toto"] = "on";



si l'utilisateur n'a rien coché la variable $_POST["toto"] n'existera pas.

Si tu fait une checkbox comme ça :
CODE
<input type="checkbox" name="toto" value="tata"/>

et si l'utilisateur a coché quelque chose tu auras
CODE
$_POST["toto"] = "tata";


si l'utilisateur n'a rien coché la variable $_POST["toto"] n'existera pas.

Je vois pas vraiment où est cette histoire de boucle !

Pour connaître toutes les variables en GET ou POST de ta page (celle qui traite le formulaire par exemple si tu veux debuggé / comprendre):
CODE
<pre>
<?php
print_r($_POST);
print_r($_GET);
print_r($_REQUEST); // GET et POST
?>
</pre>
burinho
en faite ton html est très proche du mien


[code]
<tr>
<td></td>
<td>
<input type="radio" name="sexe" value="homme"> Homme
</td>
</tr>

<tr>

<td></td>
<td>
<input type="radio" name="sexe" value="femme"> femme
</td>
</tr>
[/code

après dans mon fichier de validation j'ai

homme=$_POST['homme'];
femme=$_POST['femme'];


pourquoi une boucle car j'ai un questionnaire de 20 question avec des chekboxs]
sarc
Bonjour,

CODE
$homme=$_POST['homme'];
$femme=$_POST['femme'];


ton erreur se trouve là ! Ce qui serait envoyé, ce sera la valeur de $_POST['sexe']...
Tu mets donc :

CODE
$sexe = $_POST['sexe'];

Dans ce cas là, $sexe aura comme valeur soit homme, soit femme suivant la case cochée... Tu pourras ensuite la tester avec if wink.gif
enroc
CITATION
[/code

Et aussi bien en HTML qu'en BBCode, ne pas oublier de BIEN refermer les balises pour une présentation sans problème wink.gif

Tout ça est histoire de relecture ...
burinho
CITATION(sarc @ vendredi 01 juillet 2005, 03h11)
Bonjour,

CODE
$homme=$_POST['homme'];
$femme=$_POST['femme'];


ton erreur se trouve là ! Ce qui serait envoyé, ce sera la valeur de $_POST['sexe']...
Tu mets donc :

CODE
$sexe = $_POST['sexe'];

Dans ce cas là, $sexe aura comme valeur soit homme, soit femme suivant la case cochée... Tu pourras ensuite la tester avec if wink.gif
*


ok je teste avec mon if c'est a dire ?
sarc
Bah je sais pas ce que tu veux mettre dans ta bdd, si tu veux mettre "homme" ou "femme", ou plutôt "0" ou "1", enfin bref...

Dès que tu as mis
CODE
$sexe = $_POST['sexe'];
tu peux te servir de $sexe soit pour insérer directement dans ta base de données, soit pour donner une valeur à une autre variable...
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.