Bienvenue sur les forums conseil & création · S'enregistrer

Se connecter automatiquement

Forums » PHP & MySQL » eviter les doublons avec plusieurs boites déroulantes · Envoyer le lien

Par eripaix45, le 21 Avr 2006, 21:30 Revenir en haut de page Répondre en citant

Bonjour,

Je suis tout neuf dans le PHP (un petit mois), et je suis en train de créer un formulaire où des personnes auont à choisir plusieurs activités (4 choix parmi 6 ).
Après avoir essayé avec des checkbox, sans succès, j'ai trouvé en furetant à droite à gauche, une méthode avec 4 boites déroulantes, mais je me heurte à un petite problème : je ne sais pas comment éviter les doublons dans les choix (une personne ne devrait pas choisir deux fois la même activité.

Voici le code de la page en question :
Code:

// Voici les boites déroulantes qui posent problème

echo "1<sup>er</sup>choix <br>";
$CherchAnim1=mysql_query ("SELECT * FROM $table_d ");
echo "<form action='cible3.php' method='post'>
       
    <select name='anim1'>\n";
    while ($ligne=mysql_fetch_array($CherchAnim1))
        {extract($ligne);
            if ($anim<>"")
            echo "<option value= '$anim/$lieuAnim/$dureeAnim'> $anim : durée $dureeAnim heures \n";}
           
    echo "</select>\n <p></p><p></p>";

echo "2<sup>ème</sup>choix <br>";
$CherchAnim2=mysql_query ("SELECT * FROM $table_d ");
echo "<form action='cible3.php' method='post'>
       
    <select name='anim2'>\n";
    while ($ligne=mysql_fetch_array($CherchAnim2))
        {extract($ligne);
            if ($anim<>"")
            echo "<option value= '$anim/$lieuAnim/$dureeAnim'> $anim : durée $dureeAnim heures \n";}
           
    echo "</select>\n <p></p><p></p>";
   
echo "3<sup>ème</sup>choix <br>";
$CherchAnim3=mysql_query ("SELECT * FROM $table_d ");
echo "<form action='cible3.php' method='post'>
       
    <select name='anim3'>\n";
    while ($ligne=mysql_fetch_array($CherchAnim3))
        {extract($ligne);
            if ($anim<>"")
            echo "<option value= '$anim/$lieuAnim/$dureeAnim'> $anim : durée $dureeAnim heures  \n";}
           
    echo "</select>\n <p></p><p></p>";
   
echo "4<sup>ème</sup>choix <br>";
$CherchAnim4=mysql_query ("SELECT * FROM $table_d ");
echo "<form action='cible3.php' method='post'>
       
    <select name='anim4'>\n";
    while ($ligne=mysql_fetch_array($CherchAnim4))
        {extract($ligne);
            if ($anim<>"")
            echo "<option value= '$anim/$lieuAnim/$dureeAnim'> $anim : durée $dureeAnim heures  \n";}
           
    echo "</select>\n


Si quelqu'un a une solution pour ce cas précis, ou éventuellement avec des checkbox ...

Merci d'avance
wink
Par Cédric, le 22 Avr 2006, 02:00 Revenir en haut de page Répondre en citant

Salut,

Pour ton problème, tu peux au choix utiliser des checkbox ou des listes déroulantes. Il faudra de toutes façons, quelque soit ton choix, vérifier après validation que les choix sont bien différents.

Il y a une troisième solution possible, c'est de n'afficher qu'une seule liste déroulante. Après validation du premier choix, tu affiches la même liste déroulante mais cette fois sans le premier choix... etc jusqu'au quatrième choix.

Voici un exemple (avec le code) de ce que ça pourrait donner avec une liste déroulante remplie en fonction des choix déjà effectués.

Mais pour être sûr que ce soit adapté à ton site, il faudrait avoir plus d'infos sur ta table. Apparemment tu as trois champs: anim, lieuAnim et dureeAnim. N'as tu pas un champ autoincrémenté? Ou au moins un champ Unique (le champ anim par exemple)? Avec un champ Unique voire autoincrémenté, tu n'auras pas besoin d'utiliser value= '$anim/$lieuAnim/$dureeAnim' mais juste value='$id' ou value='$anim', ce qui pourrait simplifier le code.
Par eripaix45, le 22 Avr 2006, 13:41 Revenir en haut de page Répondre en citant

Razz Merci beaucoup Cédric Razz

ta solution commentée convient tout à fait, et de plus elle me permet de progresser justement grâce aux commentaires.

Merci encore pour le boulot.

Wink
Par Cédric, le 22 Avr 2006, 14:01 Revenir en haut de page Répondre en citant

Pas de quoi... le site est fait pour ça Wink

Forums » PHP & MySQL » eviter les doublons avec plusieurs boites déroulantes · Envoyer le lien