Checkbox : récupération des informations

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Checkbox : récupération des informations

par h0_noMan » 01 févr. 2008, 03:51

Tes variables ont toute le meme nom champ3
Si tu veux les stocker dans un tableau utilises les []

par Alex06 » 01 févr. 2008, 02:59

Voici mon code complet
J'ai modifié pour la question 3 avec le code de AB ce qui fonctionne mais cela m'affiche seulement la dernière réponse cochée.

<?Php
$MailTo = "****";
$MailCc = "****"; 
$MailSubject = "Nouvelle saisie sur GeoRescue";
$MailHeader = "Alex"; 
$Envoi = 1;

$champ1 = $_POST['champ1'];
$champ2 = $_POST['champ2'];
$champ3 = $_POST['champ3'];
$champ4 = $_POST['champ4'];
$champ5 = $_POST['champ5'];
$champ6 = $_POST['champ6'];
$champ7 = $_POST['champ7'];
$champ8 = $_POST['champ8'];
$champ9 = $_POST['champ9'];
$champ10 = $_POST['champ10'];
$champ11 = $_POST['champ11'];
$champ12 = $_POST['champ12'];
$champ13 = $_POST['champ13'];
$champ14 = $_POST['champ14'];
$champ15 = $_POST['champ15'];
$champ16 = $_POST['champ16'];
$champ17 = $_POST['champ17'];
$champ18 = $_POST['champ18'];
$champ19 = $_POST['champ19'];
$champ20 = $_POST['champ20'];
$champ21 = $_POST['champ21'];
$champ22 = $_POST['champ22'];
$champ23 = $_POST['champ23'];
$champ24 = $_POST['champ24'];
$champ25 = $_POST['champ25'];
$champ26 = $_POST['champ26'];
$champ27 = $_POST['champ27'];
$champ28 = $_POST['champ28'];
$champ29 = $_POST['champ29'];
$champ30 = $_POST['champ30'];
$champ31 = $_POST['champ31'];

if ($champ1 == ""){
echo("Vous avez oubli&eacute; de r&eacute;pondre à la question 1 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 1 : $champ1\n";
}

$MailBody .= "Question 2 : $champ2\n";




$MailBody .="Question 3 : ";
if(isset($_POST['champ3'])) $champ1 = $_POST['champ3']; else $champ3 = ''; 
$MailBody .= "$champ3, \n"; 




$MailBody .="Question 4 : ";
$champ4 = 5;
for ($i = 1; $i <= $champ4; $i++) { 
$MailBody .= "$champ4[$i], \n"; 
}





if ($champ5 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 5 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 5 : $champ5\n";
}

if ($champ6 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 6 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 6 : $champ6\n";
}


$MailBody .= "Question 7 : $champ7\n";




if ($champ8 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 8 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 8 : $champ8\n";
}



if ($champ9 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 9 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 9 : $champ9\n";
}

$MailBody .= "Question 10 : $champ10\n";




if ($champ11 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 11 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 11 : $champ11\n";
}


$MailBody .="Question 12 : ";
$champ12 = 8;
for ($i = 1; $i <= champ12; $i++) { 
$MailBody .= "$champ12[$i], \n"; 
}

if ($champ13 == ""){ 
$MailBody .= "Question 13 : aucune r&eacute;ponse donn&eacutee; \n";
}
else {
$affich_champ13 = htmlentities($champ13);
$affich_champ13 = StripSlashes($affich_champ13);
$envoi_champ13 = StripSlashes($champ13);
$MailBody .= "Question 13 : $envoi_champ13\n";
}

$MailBody .= "Question 14 : $champ10\n";




if ($champ15 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 15 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 15 : $champ15\n";
}


$MailBody .="Question 16 : ";
$champ16 = 7;
for ($i = 1; $i <= $champ16; $i++) { 
$MailBody .= "$champ16[$i], \n"; 
}

$MailBody .= "Question 17 : $champ17\n";




$MailBody .="Question 18 :" ;
$champ18 = 6;
for ($i = 1; $i <= $champ18; $i++) { 
$MailBody .= "$champ18[$i], \n"; 
}


if ($champ19 == ""){ 
$MailBody .= "Question 19 : aucune r&eacute;ponse donn&eacute;e\n";
}
else {
$affich_champ19 = htmlentities($champ19);
$affich_champ19 = StripSlashes($affich_champ19);
$envoi_champ19 = StripSlashes($champ19);
$MailBody .= "Question 19 : $envoi_champ19\n";
}


$MailBody .="Question 20 : ";
$champ20 = 7;
for ($i = 1; $i <= $champ20; $i++) { 
$MailBody .= "$champ20[$i], \n"; 
}

if ($champ21 == ""){ 
$MailBody .= "Question 21 : aucune r&eacute;ponse donn&eacute;e\n";
}
else {
$affich_champ21 = htmlentities($champ21);
$affich_champ21 = StripSlashes($affich_champ21);
$envoi_champ21 = StripSlashes($champ21);
$MailBody .= "Question 21 : $envoi_champ21\n\n";
}



$MailBody .= "Classement question 22 : \n";	
$MailBody .= "En premier : $champ22\n";
$MailBody .= "En deuxi&egrave;me : $champ23\n";
$MailBody .= "En troisi&egrave;me : $champ24\n";
$MailBody .= "En dernier : $champ25\n\n";

$MailBody .= "Question 23 : $champ26\n";


$MailBody .= "Age : $champ27\n";



if ($champ28 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 25 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Enfant(s) : $champ28\n";
}



$MailBody .="Question 26 : ";
$champ29 = 10;
for ($i = 1; $i <= $champ29; $i++) { 
$MailBody .= "$champ29[$i], \n"; 
}


if ($champ30 == "0"){
echo("Vous avez oubli&eacute;  de r&eacute;pondre à la question 27 <br>");
$Envoi = 0;
}
else {
$MailBody .= "Question 27 : $champ30\n";
}


$MailBody .= "Code postal : $champ31\n";

if ($Envoi == 0) { 
echo("<p><a href=\"Javascript:history.go(-1)\"><center><strong>RETOUR</strong></center></a></p>");
}
else{ 
mail($MailTo, $MailSubject, $MailBody, $MailHeader); 
mail($MailCc, $MailSubject, $MailBody, $MailHeader); 
echo("<p><center>Vos r&eacute;ponses ont bien &eacute;t&eacute; prises en compte.<br></center>"); 
}
?>
Voilà merci de votre aide

ta boucle

par bruno.rotrou » 01 févr. 2008, 00:19

slt
ca me parait normale car ds ta boucle a chaque passage tu écrase tes valeures, il faudrait les enregistrer ds un tableau par exemple.

un peut plus de code serait pas mal
A+

par Alex06 » 31 janv. 2008, 21:33

Effectivement la méthode d'envoi est "post".
Je viens de tester ton code.leproblème est que cela m'affiche uniquement la dernière réponses selectionnée et non pas toutes celles selectionnées...

Code : Tout sélectionner

$MailBody .="Réponse 3: "; $champ3 = isset($_POST['champ3'])? $_POST['champ3'] : ''; $MailBody .= "$champ3, \n";
Merci de ton aide

par AB » 31 janv. 2008, 21:18

Faudrait montrer plus de code.

Si ton formulaire contient la mention method="post" il faut récupérer tes variables de cette façon
$champ1 = isset($_POST['champ1'])? $_POST['champ1'] : '';
ce qui revient à écrire
if(isset($_POST['champ1'])) $champ1 = $_POST['champ1']; else $champ1 = '';

Checkbox : récupération des informations

par Alex06 » 31 janv. 2008, 20:47

Salut voilà j'ai un formulaire HTML qui donne ça :

Code : Tout sélectionner

3. Vous y allez plutôt...</span><br> <input type="hidden" name="champ3" value="Aucune"> <input type="checkbox" name="champ3" value="1"> ...en semaine <input type="checkbox" name="champ3" value="2"> ...en Week-end <input type="checkbox" name="champ3" value="3"> ...à la journée</p>
Je veux créer un code PHP qui va envoyer dans un mail ($mailbody) les réponses de cette question, j'ai trouvé une boucle qui ne fonctionne pas...

Code : Tout sélectionner

$MailBody .="Réponses : "; // cequi apparait dans lemail que je veux $champ3 = 3; //le nombre de checkbox attachée à ce champ for ($i = 1; $i <= $champ3; $i++) { //la boucle $MailBody .= "$champ3[$i], \n"; //l'affichage des réponses dans le mail }
Voilà, si quelqu'un peut m'aider à corriger ce code ou m'en proposer un autre...

j'aimerai rajouter une fonction de vérification qu'au moins une des check box est selectionnée.

Merci d'avance

Alex