IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Conservation du résultat d'une liste déroulante


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut Conservation du résultat d'une liste déroulante
    Bonjour,

    Le code suivant me sert à afficher une liste déroulante depuis une base MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    	include("lib/connexion.inc.php");
       $result = mysql_query ( "SELECT * FROM entreprise ORDER BY nom ASC" ) ;
     
    	echo "<select name='ent'>\n";
    	while ( $row = mysql_fetch_assoc ( $result ) ) {
    	echo "<option value='".htmlentities($row['nom'], ENT_QUOTES)."'>".$row['nom']."</option>\n";
    	}
    	echo "</select>\n";
    ?>
    Serait-il possible de conserver le résultat de la sélection au sein de la liste après l'envoi de celui-ci par l'appui sur un bouton ?

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Salut,

    C'est dire ?
    Tu veux afficher a nouveau le formulaire avec l'element selectionné précédament, relselectionner ?
    Ou bien conserver uniquement la valeur de ce qui a été selectionner ?

    Z.

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Tu testes et tu ajoutes l'attribut à l'option dont la valeur est égal à la valeur postée.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Merci pour vos réponses rapides

    Zwiter :La liste déroulante est au sein d'un formulaire et une fois la sélection effectuée l'appui sur un bouton déclenche une requete MySQL.

    L'ennui scest qu'une fois le clic sur le bouton effectué la valeur sélectionnée ne reste pas affichée dans la liste déroulante (qui est réinitialisée).

    andre.aime : Ce que tu me dit me semble cohérant mais étant novice en PHP je ne sais comment faire.

  5. #5
    Membre éclairé
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Points : 687
    Points
    687
    Par défaut
    Salut !

    Un petit tour par la FAQ PHP et tu aurais trouvé la réponse...

    A+++

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par djayp Voir le message
    Un petit tour par la FAQ PHP
    Je l'avait oublié celle-là

    OK mais moi j'extrait les données de la liste déroulante depuis une base de données et comme je l'ai déjà dit je n'ai pas assez de connaissances dans le domaine pour modifier le code.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    	include("lib/connexion.inc.php");
       $result = mysql_query ( "SELECT * FROM entreprise ORDER BY nom ASC" ) ;
     
    	echo "<select name='ent'>\n";
    	while ( $row = mysql_fetch_assoc ( $result ) ) {
    $selected = (isset($_POST['ent']) and $_POST['ent'] == htmlentities($row['nom'] )?'selected="selected"':'';
    	echo '<option value="'.htmlentities($row['nom'], ENT_QUOTES).'" '.$selected.' >'.$row['nom']."</option>\n";
    	}
    	echo "</select>\n";
    ?>

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected ';' in /volume1/web/base/total.php on line 23

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu peux nous montrer la ligne contenant l'erreur?

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Tu peux nous montrer la ligne contenant l'erreur?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = (isset($_GET['ent']) and $_GET['ent'] == htmlentities($row['nom'] )?'selected="selected"':'';

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Une fermeture de parenthèse oublié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = (isset($_POST['ent']) and $_POST['ent']) == htmlentities($row['nom'] ) ? 'selected="selected"' : '';

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Avant de modifier mon formulaire j'ai adapté le code pour utiliser GET à la place de POST.

    Je ne sais pas si cela vient de la manipulation mais une fois validé la liste déroulante du formulaire affiche systématiquement la dernière entrée de la liste.

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu n'es pas obligé de modifier la methode de ton formulaire mais seulement la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = (isset($_GET['ent']) and ($_GET['ent'] == htmlentities($row['nom'] )) )? 'selected="selected"' : '';
    La fermeture de la parenthèse était mal placée, désolé

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    La fermeture de la parenthèse était mal placée, désolé
    Effectivement cela marche beaucoup mieux

    MAJ : J'ai été trop vite, si effectivement il y à conservation du résultat lorsque l'on sélectionne la première ou la deuxième ligne de la liste déroulante.

    A partir de la troisième ligne c'est invariablement la première ligne qui est réaffichée

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,
    Faits voir ton code.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Faits voir ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    	include("lib/connexion.inc.php");
       $result = mysql_query ( "SELECT * FROM entreprise ORDER BY nom ASC" ) ;
     
    	echo "<select name='ent'>\n";
    	while ( $row = mysql_fetch_assoc ( $result ) ) {
    	$selected = (isset($_GET['ent']) and ($_GET['ent'] == htmlentities($row['nom'] )) )?'selected="selected"':'';
    	echo '<option value="'.htmlentities($row['nom'], ENT_QUOTES).'" '.$selected.' >'.$row['nom']."</option>\n";
    	}
    	echo "</select>\n";
    ?>

  17. #17
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    ça a l'air d'être correct,
    Sélectionne un élément à partir de la troisième liste et regarde le HTML généré et montre ce qu'il retourne.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    La sélection de la première ligne retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name='ent'>
    <option value="La Lorraine 72" selected="selected" >La Lorraine 72</option>
    <option value="La Lorraine 95"  >La Lorraine 95</option>
    <option value="Titres-Services de L'Ardenne"  >Titres-Services de L'Ardenne</option>
     
    <option value="Titres-Services de La Lorraine"  >Titres-Services de La Lorraine</option>
    <option value="Titres-Services du Savoir-Fer"  >Titres-Services du Savoir-Fer</option>
    </select>
    Quand je sélectionne la troisième ligne (Titres-Services de L'Ardenne) le code est différent (pas d'option selected):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name='ent'>
    <option value="La Lorraine 72"  >La Lorraine 72</option>
    <option value="La Lorraine 95"  >La Lorraine 95</option>
    <option value="Titres-Services de L'Ardenne"  >Titres-Services de L'Ardenne</option>
     
    <option value="Titres-Services de La Lorraine"  >Titres-Services de La Lorraine</option>
    <option value="Titres-Services du Savoir-Fer"  >Titres-Services du Savoir-Fer</option>
    </select>
    Par contre si je sélectionne la cinquième ligne cela refonctionne (idem pour la quatrième) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name='ent'>
    <option value="La Lorraine 72"  >La Lorraine 72</option>
    <option value="La Lorraine 95"  >La Lorraine 95</option>
    <option value="Titres-Services de L'Ardenne"  >Titres-Services de L'Ardenne</option>
     
    <option value="Titres-Services de La Lorraine"  >Titres-Services de La Lorraine</option>
    <option value="Titres-Services du Savoir-Fer" selected="selected" >Titres-Services du Savoir-Fer</option>
    </select>
    Moralité je croit que c'est l'apostrophe de la troisième ligne qui pose problème. A part ça ton code fonctionne très bien.

  19. #19
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = (isset($_GET['ent']) and (htmlentities($_GET['ent']) == htmlentities($row['nom'] )) )?'selected="selected"':'';

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 54
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = (isset($_GET['ent']) and (htmlentities($_GET['ent']) == htmlentities($row['nom'] )) )?'selected="selected"':'';
    Désolé ça ne fonctionne toujours pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name='ent'>
    <option value="La Lorraine 72"  >La Lorraine 72</option>
    <option value="La Lorraine 95"  >La Lorraine 95</option>
    <option value="Titres-Services de L'Ardenne"  >Titres-Services de L'Ardenne</option>
     
    <option value="Titres-Services de La Lorraine"  >Titres-Services de La Lorraine</option>
    <option value="Titres-Services du Savoir-Fer"  >Titres-Services du Savoir-Fer</option>
    </select>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Conserver les données d'une liste déroulante
    Par SebbC dans le forum Langage
    Réponses: 2
    Dernier message: 18/01/2010, 15h19
  2. Résultat d'une liste déroulante
    Par dark_geek dans le forum ASP
    Réponses: 1
    Dernier message: 19/05/2009, 00h24
  3. Réponses: 9
    Dernier message: 22/03/2008, 14h41
  4. Conserver la valeur d'une liste déroulante
    Par s-c-a-r-a dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2008, 04h15
  5. [AJAX] résultats d'une liste déroulante en fonction d'une autre liste
    Par jonnyboy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/09/2007, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo