Liste déroulante

Résolu
omlaly - 7 févr. 2013 à 19:05
 omlaly - 20 févr. 2013 à 20:39
Bonjour,

J'ai réussi à faire une liste déroulante avec les résultats issus d'une base de données. Mais, j'aimerais améliorer le truc en rajoutant une ligne en premier (une phrase du genre : "Choisissez un village.") dans la base de données. Je l'ai fait.

Ma question est : Comment faire un test PHP if pour lui dire que s'il y a cette phrase qui est affichée (donc l'utilisateur n'a pas choisi) dans le formulaire (<select name="nom"></select>) alors il faut faire un truc sinon un autre truc ?

Je vous donne le code :
$villages = "SELECT nom_village FROM  villages"; 
$result = mysql_query($villages) or die("Erreur sur la requête SQL concernant les villages."); 

echo "<form action='article_post.php' method='POST'  > 
Villages : 
<select name='villages'>"; 
while ($row=mysql_fetch_array($result)) 
{ 
echo"<option>$row[0]</option>"; 
} 
echo"</select>
</form>";


En attendant vos réponses, je continue mes recherches...
Cordialement

8 réponses

cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
8 févr. 2013 à 11:57
Salut, tu veux dire que si la valeur est égal à zéro, le client n'a rien choisi ou bien etc... :) ?

Donc, pour commencer, du dois ajouter une valeur à chaque option.
<select name='villages'>
   <option value="valeur1">Option 1</option>
   <option value="valeur2">Option 2</option>
   <option value="valeur3">Option 3</option> 
</select>


Et par défaut, pour le premier choix, tu ajoute un tag option = 0.
<?php
*...
<select name='villages'>";
    <option value="0">aucun</option>
    while ($row=mysql_fetch_array($result)) {
        *...


Par la suite, coté serveur
<?php
if ($_POST['villages'] == 0) {
     echo "pas bon";
} else {
     echo "c'est mieux";
}


stéph
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
7 févr. 2013 à 19:42
Bonjour,

Et un :
if($_REQUEST['...']=="Choisissez un village.")

Ne fonctionne pas ?

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
sylvain64520 Messages postés 130 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 7 juin 2013
8 févr. 2013 à 10:24
Salut,

Perso je mets des value="" en propriété dans les options.
Je ne sais pas si ça te changerait quelque chose.

Cdt
0
C'est bon, j'ai trouvé !
0

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

Posez votre question
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
20 févr. 2013 à 20:04
Tu as trouvé quoi ?

stéph
0
J'ai rajouté un champs dans ma table avec tous les items correspondant qu'il faut affiché puis j'ai fait une requête SQL pour lui dire les correspondances entre les deux champs.
A partir de la liste déroulante, je lui ai dit d'afficher les correspondances au lieu des items en eux-mêmes.

Cordialement
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
20 févr. 2013 à 20:34
Donc, mon poste ta été utile.
Peux-tu cliquer sur Réponse acceptée STP

stéph
0
C'est fait
0
Rejoignez-nous