[RESOLU] Récupérer Valeur Liste Déroulante

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 : [RESOLU] Récupérer Valeur Liste Déroulante

Re: Récupérer Valeur Liste Déroulante

par Dutienne » 23 mai 2013, 15:22

J'ai trouvé mon erreur, il fallait tout simplement que je rajoute un exit après ma redirection.
Merci pour toutes vos aides !

Re: Récupérer Valeur Liste Déroulante

par Dutienne » 22 mai 2013, 16:02

J'ai remplacé les $_POST par des $_GET car mon formulaire est en get.
Et effectivement ça marche ! Merci beaucoup.
Comment puis-je faire pour qu'une fois que les données ont été envoyés dans mon fichier .txt que ça me redirige vers une autre page ?
J'avais pensé à un Header('Location : accueil.php');
Mais cela ne fonctionne pas. Peut-être que je ne le positionne pas au bon endroit ?!

Re: Récupérer Valeur Liste Déroulante

par ghost5922 » 22 mai 2013, 15:35

Bonjour,


essaie cela
<select name="catr">
<option> Choisissez la catégorie </option>
<?php
        $ligne = 1; // compteur de ligne
        $fic = fopen("categorie.txt", "a+");
        while($tab=fgetcsv($fic,1024,','))
        {
                $champs = count($tab);//nombre de champ dans la ligne en question
                $ligne ++;
                //affichage de chaque champ de la ligne en question
                for($i=0; $i<1; $i++)
                        { $tab = $tab[0] . " " . $tab[1];
						if(isset($_POST['catr']) and $_POST['catr']==$tab){$sel='selected="selected"';}else{$sel='';}
                           ?> <option value="<?php echo $tab;  ?>" <?php echo $sel; ?>><?php echo $tab;  ?></option>
                           <?php }
        }
?>
</select>
<span class="error_message"><?php if(isset($erreurcat))echo $erreurcat?></span>
<br/>
 

Re: Récupérer Valeur Liste Déroulante

par Dutienne » 22 mai 2013, 14:54

Une petite question.
Dans mon formulaire, lorsqu'un champ obligatoire n'est pas rempli j'affiche une erreur tout en laissant afficher ce qu'il y a été écris dans les champs.
Cela fonctionne pour tout sauf ma liste déroulante. Pour afficher l'erreur, il n'y a pas de soucis. Mais je n'arrive pas à laisser le choix sélectionné.
<select name="catr">
<option> Choisissez la catégorie </option>
<?php
        $ligne = 1; // compteur de ligne
        $fic = fopen("categorie.txt", "a+");
        while($tab=fgetcsv($fic,1024,','))
        {
                $champs = count($tab);//nombre de champ dans la ligne en question
                $ligne ++;
                //affichage de chaque champ de la ligne en question
                for($i=0; $i<1; $i++)
                        { $tab = $tab[0] . " " . $tab[1];
                           ?> <option value="<?php echo $tab;  ?>"><?php echo $tab;  ?></option>
                           <?php }
        }
?>
</select>
<span class="error_message"><?php if(isset($erreurcat))echo $erreurcat?></span>
<br/>
Par exemple lors de l'inscription, si je choisis Artisan dans ma liste déroulante et qu'il y a des erreurs au niveau d'un ou des autre(s) champ(s). Je souhaiterais que ce soit Artisan qui soit affiché dans ma liste déroulante. Comment puis-je faire ?

Re: Récupérer Valeur Liste Déroulante

par Dutienne » 21 mai 2013, 16:37

C'est tout à fait ça que je voulais ! Merci beaucoup !

Re: Récupérer Valeur Liste Déroulante

par ghost5922 » 21 mai 2013, 13:47

Bonjour,

comme cela ?
Catégorie : 
<select name="catr">
<option> Choisissez la catégorie </option>
<?php
        $ligne = 1; // compteur de ligne
        $fic = fopen("categorie.txt", "a+");
        while($tab=fgetcsv($fic,1024,','))
        {
                $champs = count($tab);//nombre de champ dans la ligne en question
                $ligne ++;
                //affichage de chaque champ de la ligne en question
                for($i=0; $i<1; $i++)
                        { $tab = $tab[0] . " " . $tab[1];
                           ?> <option value="<?php echo $tab;  ?>"><?php echo $tab;  ?></option>
                           <?php }
        }
?> 
</select>

Re: Récupérer Valeur Liste Déroulante

par Dutienne » 21 mai 2013, 13:43

Bonjour,

Par exemple si ma liste déroulante est :
Artisan
Professeur
Retraite
(etc)
Ces données viennent de mon fichier texte.

Si je sélectionne Professeur dans ma liste, je souhaite que ce soit Professeur qui s'écrive dans mon fichier inscrip.txt

Re: Récupérer Valeur Liste Déroulante

par ghost5922 » 19 mai 2013, 20:12

Bonjour,

comme Moogli de la dit utilise $tab[0] ou $tab[1] ou pour le numero de ligne $i après faut qu'on sache se que tu veux comme valeur

Re: Récupérer Valeur Liste Déroulante

par Dutienne » 19 mai 2013, 19:03

Au début de mon formulaire : <form method="get" action="formulaire-inscription.php">

Entre deux, ma liste déroulante et d'autres champs.

A la fin de mon formulaire : <br/><input type="submit" value="Envoyer" name="Envoyer"/>

Pour écrire dans mon fichier :
// S'il n'y a pas d'erreur (car j'affiche des messages d'erreur)
if($valid==true)
{
$ligne = $_GET['nom'] . ',' . $_GET['catr'] . ',' . $_GET['prenom'] . ',' . $_GET['annee_naiss'] . ',' . $_GET['ville'];
// on ouvre le fichier inscrip en écriture avec ajout du contenu à la fin du fichier
$f=fopen("inscrip.txt","a");
fputs($f,$ligne);
fclose($f);
}

Comment puis-je faire pour que la valeur sélectionné dans ma liste déroulante s'écrive au lieu de Resource id #7 ?

Re: Récupérer Valeur Liste Déroulante

par moogli » 19 mai 2013, 18:42

Salut,

Quel est le code de validation du formulaire ?

Sinon oui tu affiche la ressource du fichier (le résultat du fopen $fic) dans la valeur de l'option.
Il faut que tu utilise un $tab).


@+

Récupérer Valeur Liste Déroulante

par Dutienne » 19 mai 2013, 17:48

Bonjour à tous.
Dans mon site, j'ai créé un formulaire dans lequel j'ai une liste déroulante alimenté par un fichier .txt
Catégorie : 
<select name="catr">
<option> Choisissez la catégorie </option>
<?php
	$ligne = 1; // compteur de ligne
	$fic = fopen("categorie.txt", "a+");
	while($tab=fgetcsv($fic,1024,','))
	{
		$champs = count($tab);//nombre de champ dans la ligne en question
		$ligne ++;
		//affichage de chaque champ de la ligne en question
		for($i=0; $i<1; $i++)
 			{ $tab = $tab[0] . " " . $tab[1];
			   ?> <option value="<?php echo $fic; ?>"><?php echo $tab;  ?></option>
			   <?php }
	}
?> 
</select>
J'obtiens bien ce que je veux comme choix dans ma liste déroulante, mais le soucis c'est que une fois que je choisis un élément de la liste et que j'appuie sur enregistrer (validation du formulaire), cela m'écrit Resource id #7 à l'emplacement prévu à cet effet dans mon fichier. Comment puis-je faire pour que l'élément sélectionné dans la liste déroulante s'écrive dans mon fichier.
Merci d'avance.