formulaire avec plusieurs réponses possibles

ladybuuug
Invité n'ayant pas de compte PHPfrance

16 août 2005, 18:54

Bonjour,

ma question va être idiote pour certains mais je n'y arrive pas ...

j'ai un formulaire d'inscription avec une question à choix multiples, je ne comprends pas car si on coche plusieurs réponses, il n'y en a toujours qu'une qui s'affiche. Je suppose qu'il faut ajouter une function...

h2o
Eléphant du PHP | 81 Messages

16 août 2005, 19:04

si on coche plusieurs réponses, il n'y en a toujours qu'une qui s'affiche. Je suppose qu'il faut ajouter une function...
Je ne suis pas certain que ce soit un problème php : montres-nous ton code (du formulaire) pour y voir clair dans ton problème 8)
Jean-Marie Hoornaert - h2o
Aide au développement et formation FileMaker, xml et AppleScript

Mammouth du PHP | 1885 Messages

16 août 2005, 20:58

Bonjour,

Puisse ce sujet être la solution à ton problème:
http://www.phpfrance.com/forums/voir_sujet-5220.php
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ladybuuug
Invité n'ayant pas de compte PHPfrance

17 août 2005, 17:30

Ah zut je n'avais pas vu dans les FAQ. Merci.
Mais je n'arrive pas à faire marcher la chose. J'ai ajouté les crochets, mais cela m'affiche array dans la base de données. :?

Mammouth du PHP | 19672 Messages

17 août 2005, 17:38

oui, ça veut dire que tu récupères non plus une valeur dite "scalaire" mais un tableau indexé : donc variable[0], variable[1], etc...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ladybuuug
Invité n'ayant pas de compte PHPfrance

18 août 2005, 02:03

d'accord... par contre, si je veux afficher les informations sur le tableau je fais comment. Car j'ai essayé d'ajouter ce code :

Code : Tout sélectionner

$tabLieux = (isset($_POST['lieux']))?$_POST['lieux']:null; echo "Lieux de poses :<br>"; // bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées if (!empty($tabLieux)) { foreach($tabLieux as $cle => $valeur) { echo $cle.' : '.$valeur.'<br>'; } }
mais sans succès ! :(

Mammouth du PHP | 19672 Messages

18 août 2005, 08:50

On peut voir la partie du formulaire correspondant à ces données ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ladybuuug
Invité n'ayant pas de compte PHPfrance

18 août 2005, 12:37

Donc là c'est le formulaire pour modifier son profil :
Lieux de poses : 
	<input name='lieux[]' type='checkbox' id='lieux' value='Studio' ";
	if($lieuxm="Studio")
		{	echo"checked";	}
	echo">&nbsp;Studio <br><input name='lieux[]' type='checkbox' id='lieux' value='Mon appartement' ";
	if($lieuxm="Mon appartement")
		{	echo"checked";	}
	echo">&nbsp;Mon appartement <br><input name='lieux[]' type='checkbox' id='lieux' value='Appartement du Modèle' ";
	if($lieuxm="Appartement du Modèle")
		{	echo"checked";	}
	echo">&nbsp;Appartement du Modèle <br><input name='lieux[]' type='checkbox' id='lieux' value='Extérieur' ";
	if($lieuxm="Extérieur")
		{	echo"checked";	}
	echo">&nbsp;Extérieur 
il appel une page pour vérifier les formules etc. Donc lorsqu'on envoie le formulaire, on voit bien apparaître les infos choisis :
$tabLieux = (isset($_POST['lieux']))?$_POST['lieux']:null; 

echo "Voici les lieux que vous avez choisi :<br>"; 
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées 
if (!empty($tabLieux)) { 
    foreach($tabLieux as $cle => $valeur) { 
        echo $cle.' : '.$valeur.'<br>'; 
    } 
} 
Mais si j'insers ce code sur le profil du membre cela ne fonctionne pas.

Mammouth du PHP | 19672 Messages

18 août 2005, 13:24

Essaye avec un code de formulaire moins fouillis:
<?php
//....
?>
Lieux de poses :
<input name="lieux[]" type="checkbox" id="lieux1" value="Studio"<?php echo($lieuxm="Studio")?"checked":null; ?>>&nbsp;Studio <br>
<input name="lieux[]" type="checkbox" id="lieux2" value="Mon appartement"<?php echo(($lieuxm="Mon appartement")?"checked":null); ?>>&nbsp;Mon appartement <br>
<input name="lieux[]" type="checkbox" id="lieux3" value="Appartement du Modèle"<?php echo(($lieuxm="Appartement du Modèle")?"checked":null); ?>>&nbsp;Appartement du Modèle <br>
<input name="lieux[]" type="checkbox" id="lieux4" value="Extérieur"<?php echo(($lieuxm="Extérieur")?"checked":null); ?>>&nbsp;Extérieur
<?php
//...
?>
Je te signale au passage que tu ne peux pas avoir plusieurs fois la même valeur d'attribut id dans une page html. J'ai donc modifié ça aussi.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ladybuuug
Invité n'ayant pas de compte PHPfrance

19 août 2005, 13:35

Merci bien mais ça ne change rien. J'avoue ne pas avoir bien compris le principe de la chose. Où est ce que les informations sont envoyés ? elles sont envoyées sous forme de tableau mais comment on fait pour récupérer ses infos ? Car le code que vous donnez dans la FAQ il ne fonctionne que sur la page qu'appelle le formulaire.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 août 2005, 13:39

MCar le code que vous donnez dans la FAQ il ne fonctionne que sur la page qu'appelle le formulaire.
oui comme tout formulaire

un formulaire renvoie les informations sur la page indiquée dans l'attribut "action"

donc il faut mettre le script de récupération des données dans cette page

Mammouth du PHP | 19672 Messages

19 août 2005, 13:40

Tu as dans la balise form> un attribut "action" qui indique l'url de la page de destination: si tu laisses ce paramètres vide, la page se rechercge sur elle-même. Dans un cas comme dans l'autre, tu vas retrouver les valeurs du formulaire dans un tableau, voici un bout de code pour visualiser le résultat :
$lieux = $_POST['lieux'];
foreach($lieux as $cle =>)
{
    echo("<p>Choix ". $cle ." : ". $valeur ."</p>\n");
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ladybuuug
Invité n'ayant pas de compte PHPfrance

19 août 2005, 13:55

Oui ça j'ai bien compris, cela fonctionne bien mais moi je veux récupérer ses informations pour y mettre sur le profil du membre. Ca m'intèresse pas d'y afficher sur la page qu'appel le formulaire. Que dois je faire ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 août 2005, 14:01

non mais attend ça c'est un exemple pour récupérer des valeurs multiples

alors ça les affiche parceque c'est le plus simple, mais les variables tu les as donc tu en fais ce que tu veux

si tu veux les enregistrer en base de données ben tu construis ta requête SQL avec ces valeurs et tu l'exécutes

tu gardes le principe de la boucle pour récupérer toutes les valeurs, et tu choisi ce que tu en fais ;)

ladybuug
Invité n'ayant pas de compte PHPfrance

19 août 2005, 20:52

excuse moi je suis novice je comprends pas tout. Enfin j'ai compris que cela ne suffisait pas et que je devais rajouter une ptite formule. Aurais tu un exemple ou un site qui explique. J'ai cherché mais j'ai pas trouvé :'(