PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 20-10-2010 15:50:55

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Récupérer Checkbox PHP

Bonjour,

Je deviens fou de chez fou, je n'arrive pas après quelques heures de recherche à récupérer mes valeurs de checkbox :

Mon formulaire :

    <INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Un entretien ouvert"> Un entretien ouvert<br>
    <INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Des questions fermées"> Des questions fermées (réponse par oui ou non)<br>
    <INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Un test de motivation"> Un test de motivation (Q-MAT)<br>
    <INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Un test de motivation"> Autre...<br> <br>

J'ai testé 36 000 codes pour récupèrer dans mon fichier php les éléments selectionnés mais voici ce que j'ai en ce moment :

for ( $a=0;$a < sizeof($_POST['Ques7']);$a++)
{ echo $_POST['Ques7'][$a]; }

J'ai toujours et à chaque fois la même erreur :

Notice: Undefined index: Ques7 in C:\Program Files\Easy PHP\www\Traitement.php on line 83

La ligne en question est celle qui contient Ques7.
J'ai changer le nom, tout essayé mais rien n'y fait.

Comment puis-je faire d'une manière ou d'une autre pour récupérer sous forme de chaine dans une variable les réponses du genre :

  - Un entretien ouvert
  - Un test de motivation

Merci de votre aide, je m'arrache les cheveux...

Hors ligne

#2 20-10-2010 17:03:54

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Récupérer Checkbox PHP

salut,

heu je ne vois pas où est le problème, ton code html est bon, ensuite il faut voir exactement ce qui se passe.

je te conseil d'utiliser foreach pour parcourir le tableau c'est beaucoup plus simple. Ton message d'erreur peut venir du fait que tu arrive sur un index qui n'existe pas dans le tableau (si si c'est même sur car le dernière index de ton tableau c'est sizeof($tablo) -1(, la numération des index commence toujours à zéro !).

perso j'ai testé ton code ainsi :


<?php
if (!empty ($_POST['Ques7'])){
    ob_start();
    echo 'Quest7 existe dans post<br />';
    var_dump($_POST);
    $contents = ob_get_contents();
    ob_end_clean();
}
else {
    ob_start();
    echo 'Quest7 existe pas dans post<br />';
    var_dump($_POST);
    $contents = ob_get_contents();
    ob_end_clean();
}
?>
<html>
<head>
    <style type="text/css">
        pre {
    word-wrap: break-word;
  text-indent: 10px;
    font : normal 1em verdana;
    background: #FaF9F5;
    padding:0.3em 1em;
}
    </style>
</head>
<body>
    <h1>Ceci est un test</h1>
    <?php
    if (!empty ($contents)) echo '<pre>'.$contents.'</pre>';
    ?>
<form action="" method="post">
<INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Un entretien ouvert"> Un entretien ouvert<br>
<INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Des questions fermées"> Des questions fermées (réponse par oui ou non)<br>
<INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Un test de motivation"> Un test de motivation (Q-MAT)<br>
<INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="Un test de motivation"> Autre...<br> <br>
<input type="submit" />
</form>
</body>
</html>

Il me permet d'avoir le contenu du tableau $_POST avant et après la soumission du formulaire. 

Pour information, les conventions utilisent des minuscules pour les balises html.

si tu utilise


<?php
if (!empty($_POST['Ques7'])) {
    echo '<div>';
    foreach($_POST['Ques7'] as $checkbox) {
        echo '- ' .$checkbox.'<br />';  
}
echo '</div>';
}
?>

tu auras le résultat de ton dernier exemple wink

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 20-10-2010 17:17:58

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

Merci beaucup, je n'ai plus de messages d'erreur, seulement rien ne s'affiche maintenant lol !

Hors ligne

#4 20-10-2010 17:45:19

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

Je test donc ceci :

//Question 7
$Q7a = "7 - Appréciation de la motivation par : ";
if (!empty($_POST['Ques7'])) {
    echo '<div>';
    foreach($_POST['Ques7'] as $checkbox) {
        $Q7b.= '- ' .$checkbox.'<br />';  
}
}

Et il me dit toujours :

Notice: Undefined variable: Q7b in C:\Program Files\Easy PHP\www\Traitement.php on line 113

Je pense qu'il ne rentre pas dans la boucle et ne trouve donc pas de valeur cochée !

Hors ligne

#5 20-10-2010 17:52:48

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer Checkbox PHP

C'est $Q7a que tu as déclaré et non $Q7b. ^_-

Hors ligne

#6 20-10-2010 19:13:58

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

Oui je sais lol, mais Q7b est la variable qui contient les réponses, et Q7a celle qui contient la question.
Elle est quand même déclarée il ne devrait pas me dire qu'il ne la connait pas ?

Hors ligne

#7 20-10-2010 20:09:10

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Récupérer Checkbox PHP

Ah oui déclarée ? Et où cela ? smile

$variable .= ....
Suppose que $variable existe puisque c'est une concaténation, or tu ne la mets nulle par avant, donc elle n'est pas déclarée.

Hors ligne

#8 20-10-2010 20:28:59

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Récupérer Checkbox PHP

$_POST ne renvoi pas les checkbox non cocher, tout simplemet wink
a++

Hors ligne

#9 21-10-2010 09:05:30

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

Je ne comprend pas vraiment tout (désolé je suis débutant).
J'aimerais pouvoir récupérer dans une variable les valeurs cochées du genre :

  - Un entretien ouvert
  - Un test de motivation

Comment dois-je faire, avez-vous un code ?
Celui de me parait bien mais je n'avais aucun affichage.
Merci

Hors ligne

#10 21-10-2010 10:23:13

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Récupérer Checkbox PHP

le code que je t'ai fournis fonctionne (testé).
si tu n'a pas d'affichage c'est que tu ne coche pas les cases.

si tu veut savoir ce que $_POSt "a dans le bide" => var_dump($_POST); en haut du fichier php !

tu prend tout le code que j'ai mis au dessus tu le met dans un fichier test.php et tu regarde ce que ça donne dans un navigateur

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#11 25-10-2010 14:59:33

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

Ca marche super en fait, désolé
Encore merci

Hors ligne

#12 25-10-2010 15:54:41

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

J'aurais une autre petite question a vous poser :
J'ai une question a checkbox....
Avec donc comme choix :
-Choix1
-Choix2
-Choix3
-Choix4 (ce choix 4 contient en dessous une zone de texte en fait)

J'aimerais que lorsque je coche le choix4 je renvoi ce qui est écrit dans la zone de texte en dessous.
J'ai essayé quelques chose de ce genre sans succès (sur le choix4):

<INPUT TYPE="checkbox" NAME="Ques7[]" VALUE="document.getElementById('Question7Area').value"> Autre...<br> <br>

Question7Area est l'id du textarea, seulement cela m'affiche "document.getElementById('Question7Area').value" comme étant la valeure.

J'ai du mal faire un truc ?

Merci

Hors ligne

#13 26-10-2010 17:45:30

Lokomass
Membre
Inscription : 18-10-2010
Messages : 10

Re : Récupérer Checkbox PHP

UP svp !! Je suis bloqué !
J'ai essayé ceci :

if ($_POST['Ques7']==$Valeur)

Y'a t-il une erreur de syntaxe ?

Hors ligne

#14 26-10-2010 20:03:21

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Récupérer Checkbox PHP

utilise un nom precis pour le champ texte et si dans $_POST['Ques7'][] tu a pour valeur 'Autre....' tu exploite la valeur de $_POST['champtext'].

oublie le JS c'est pas certain !

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums