[PHP] séléction d'un menu déroulant dynamyque

Fermé
Papymucho - 19 juin 2007 à 14:47
 Papymucho - 20 juin 2007 à 14:17
Bonjour,

Je débute en PHP et j'ai un soucis au niveau d'un menu déroulant dynamique. Le menu en lui même marche impeccable, le soucis viens du fait que je n'arrive pas a garder la selection qui à été faite dans le formulaire et la page de traitement, revenant toujours par défaut.
J'ai bien essayé plusieurs solutions mais n'y comprennant pas grand chose c'est pas évident...
Voici le code en question :

<form action='Traitement.php' method='post'>
<select name='stage'>\n";
while ($choix_stage = mysql_fetch_array($select_stage))
{ extract($choix_stage);
if ($Stage<>"")
echo "<option value='$Stage'>$Stage\n";
}
echo "</select>\n
</form>


J'ai essayé avec un truc du genre :

<form action='Traitement.php' method='post'>
<select name='stage'>\n";
while ($choix_stage = mysql_fetch_array($select_stage))
{ extract($choix_stage);
if ($Stage<>"")
$choix_stage = (isset($_POST['stage'])) ? $_POST['stage'] : ''?>
<option <?php if ($select_stage['stage'] == $stage_defaut) echo "selected='selected' value='$Stage'>$Stage\n";
}
echo "</select>\n
</form>

Voilà le problème avec cette dernière partie c'est que le menu n'est plus dynamique quand on valide le formulaire et que l'on arrive au traitement, et que si on revalide à nouveau (le traitement cette fois ci), on arrive a nouveau sur la page de traitement et la le menu redeviens dynamique avec les options

Vous moquez pas j'y comprends pas grand chose :p Merci d'avance pour vos réponses :-)
A voir également:

5 réponses

s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
19 juin 2007 à 15:17
Salut,

Vous moquez pas j'y comprends pas grand chose

Non mais c'est très drôle :p


Déjà ca serait bien que tu dise que tu utlise du php dans ton code HTML :p <?php ?>
Et aussi fermer les balises html.

Après pour le code PHP je te fait confiance ... je comprend pas trop.
<form action='Traitement.php' method='post'>
	<select name='stage'>
	<?php
	while ($choix_stage = mysql_fetch_array($select_stage))
		{ extract($choix_stage);
			if ($Stage<>"")
			echo "<option value='" . $Stage . "'>" . $Stage . "</option>\n";
		}
	?>
	</select>
</form> 

0
Hum oui en effet désolé pour ce petit manque de précisions mais là encore je suis novice :D

Donc j'ai essayé ça ne marche pas.... je précise un peu plus :

Je passe par un fichier formulaire, un fichier traitement et un fichier qui continent tout l'affichage, avec des includes partout dans le traitement et le formulaire, donc je sais pas si c'est pas là que ça coince justement. La portion de code que j'ai posé est dans le fichier affichage:


<?php

<form action='Traitement.php' method='post'>
<center><table width='95%' border='0' cellspacing='0' cellpading='2'>
<tr><td align='right'><b>{$étiquettes['stage']} :</br></td>
<td> <select name='stage'>\n";
while ($choix_stage = mysql_fetch_array($select_stage))
{ extract($choix_stage);
if ($Stage<>"")
echo "<option value='$Stage'>$Stage\n";
}
echo "</select>\n

</td></tr>
<tr><td align='right'><b>{$étiquettes['commentaires']} :</br></td>
<td><input type='text' name='commentaires' size='87' maxlength='250'value='$commentaires'></td>
</tr>
<tr><td align='right'><b>{$étiquettes['date']} :</br></td>
<td>";include("dates_inscription.php");echo "</td>
</tr>
</table><p><hr><p>
<input type='checkbox' name='assuré' value='$assuré' onClick='ChangeStatut(this.form)' /><b>Je certifie être correctement assuré(e) et n'engage aucunement la responsabilité de l'association xxx en cas d'accidents.</b>\n
<br><font color=#E80404>(Obligatoire pour valider votre inscription)</font>
<p><input type='submit' name='validation' value='Validez' disabled /></p><br>
</form>\n
</center>";


?>



Le problème c'est que c'est beaucoup moins lisible là je suppose?
Voilà en fait je ne sais pas si ma méthode est bonne en ce qui concerne de faire 3 fichiers pour cela, ou du moins si je le fais bien.

En tout cas merci pour ta réponse très rapide s.spark :-)
0
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
19 juin 2007 à 15:35
Si tu l'avais mis dans les balises code du site on aurait eu l'indentation en prime ...


Non mais là ca va pas le faire, on ne met pas de l'HTML comme ça entre les balise <?php ?>, regarde donc le code que je t'ai donné.

Utilise un logiciel de colorisation syntaxique comme notepad++ ou notepad2 ca sera plus falise pour toi.
0
Ok c'est vrai qu'avec note pad c'est plus sympa bref.

Ce code marche très bien, le tiens aussi (plus clair en effet) néamoins ça n'était pas la question posée.

Mon soucis viens que quand une personne rempli le formulaire, et qu'il omet un champ obligatoire ou rentre des lettres dans le champ n° de téléphone par exemple, la page de traitement se lance, donc un nouveau formulaire avec la précision des correctifs a apporter....

Tout ce qu'a rentré le visiteur dans les champs textes restent bien sur la seconde page (nom, prénom etcetc...)
Mais pas le choix qu'il a fait dans les checkbox ni dans le menu déroulant dynamique. Après tout le reste est fonctionnel, même si c'est un gros cafouilli je l'admets.

Voilà donc ma question était comment faire pour que le choix du visiteur qu'a fait dans le menu déroulant reste bien le même dans la seconde page, et ne revienne pas par défaut comme étant le premier de ma table "stage".


Enfin merci quand même :-))
0
Plus personne pour essayer de résoudre mon problème? :°°(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hup!

Problème toujours pas résolu, une bonne âme pour y répondre?
0