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 :

Liste déroulante à 2 colonnes [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique et création d'images animées et fixes de synthèse
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique et création d'images animées et fixes de synthèse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Par défaut Liste déroulante à 2 colonnes
    Bonjour à tous...

    J'ai réussi à faire une liste déroulante à deux colonnes, le problème est que je voudrais que la 2ème colonne s'aligne sur la première lettre des items qu'elle contient avec une ligne séparative verticale entre les deux colonnes et les espaces nécessaires entre la dernière lettre des items contenus dans la première colonne et le trait séparateur. Est-ce possible et y a t'il un moyen de coder celà proprement ?
    Je voudrais en gros faire pareil que les listes déroulantes d'Access.

    Voilà mon code initial :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    					$sql="SELECT N0_Departement, lib_departement, Code_departement FROM departement ORDER BY lib_departement";
    					$resultat=mysql_query($sql);
    					echo '<select name="Dep">';
    					echo '<option value="" selected></option>';
    					while ($rang=mysql_fetch_array($resultat)){
    						$cleDep=$rang['N0_Departement'];
    						$ldep=$rang['lib_departement'];
    						$Ndep=$rang['Code_departement'];
    						if (!empty($ldep)){
    							echo "<option value=\"$cleDep\">$ldep, $Ndep</option>";
    						}
    					}
    					echo '</select>';
    				?>
    Merci beaucoup d'avance.

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu peux montrer un screenshot parce que là
    je voudrais que la 2ème colonne s'aligne sur la première lettre des items qu'elle contient avec une ligne séparative verticale entre les deux colonnes et les espaces nécessaires entre la dernière lettre des items contenus dans la première colonne et le trait séparateur
    J'ai rien compris...

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique et création d'images animées et fixes de synthèse
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique et création d'images animées et fixes de synthèse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Par défaut
    Bonjour Benjamin...

    OK, voilà avec le code que j'ai donné ci-dessus, ce que j'obtiens :

    Et en fait, voilà ce que je voudrais obtenir :


    Bon, dans l'exemple, il y a 3 colonnes, je n'en veux que deux. Au lieu que mes items de colonnes soient tassés, je voudrais qu'ils soient espacés comme l'exemple ci-dessus avec une ligne verticale qui sépare ou démarque les colonnes....

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    D'accord. Je ne te cache pas que ça ne vas pas être simple. Enfin, c'est pas impossible tout de même.
    La solution que je te recommande est d'afficher un tableau (au lieu d'une liste) formatté comme tu veux et dont le tbody possède une hauteur fixe. Avec CSS tu t'arranges pour faire apparaître l'ascenseur vertical à l'aide de la propriété overflow. Ensuite, avec JavaScript (je te recommande jQuery pour te simplifier la vie) tu vas attraper l'évènement clic sur une ligne du tableau et mettre à jour un champ caché dans la page qui sera l'équivalent de ton ancienne liste déroulante. Tu pourra en profiter pour mettre en surbrillance la ligne de tableau concernée.

    Avec ça c'est gagné

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur informatique et création d'images animées et fixes de synthèse
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique et création d'images animées et fixes de synthèse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Par défaut
    Bonjour Benjamin...

    Ouille, tu l'as dit, c'est pas simple tout de même. Je pourrais plancher là-dessus quand j'aurais plus de temps devant moi ce qui, actuellement n'est pas le cas. Mais ton idée est intéressante, en plus je n'ai jamais fait de JQuery, quant à CSS, je débute timidement, ce sera l'occasion.

    Mon idée plus simpliste revenait à récupérer la longueur maxi du champ contenu dans le première colonne de la liste, pour chaque item de la liste récupérer sa longueur réelle et reconstituer la chaîne avec les espaces manquants et ensuite rajouter le code ASCII de la barre verticale, puis charger la seconde colonne.

    Farfelu ?

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Mon idée plus simpliste revenait à récupérer la longueur maxi du champ contenu dans le première colonne de la liste, pour chaque item de la liste récupérer sa longueur réelle et reconstituer la chaîne avec les espaces manquants et ensuite rajouter le code ASCII de la barre verticale, puis charger la seconde colonne.

    Farfelu ?
    Oui, et très très sale en plus.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste déroulante 2 colonnes
    Par steps5ive dans le forum Word
    Réponses: 1
    Dernier message: 29/01/2009, 18h13
  2. Liste déroulante multi colonne
    Par justiniany dans le forum Access
    Réponses: 3
    Dernier message: 11/09/2006, 02h01
  3. [C#][debutant] Liste déroulante 2 colonnes cachées
    Par vavou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/08/2006, 19h42
  4. pb avec liste déroulante à 2 colonnes visibles
    Par moicats dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 10h38
  5. Réponses: 4
    Dernier message: 23/09/2005, 13h29

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