Rechercher : dans
Par :

Créer unr liste déroulante à 3 colonnes

Dernière réponse le 25 aoû 2009 à 14:26:43 malabarbe, le 21 aoû 2009 à 15:18:00 
 Signaler ce message aux modérateurs

Bonjour,

Je voudrais créer unr liste déroulante a 3 colonnes de
façon a y intégrer des champs de la base de données.

Et que le lien agisse sur la ligne complète c'est a dire
les 3 colonnes en mème temps.

Je galère depuis des lustres pour y parvenir mais pas
de résultats probants !

Merci pour un gros coup de main.

Meilleures réponses pour « Créer unr liste déroulante à 3 colonnes » dans :
Listes déroulantes simples avec Excel VoirDans votre tableau, vous souhaitez insérer un texte ou une valeur choisi dans une liste (déroulante). vous créez votre liste, ligne aprés ligne, sur votre feuille en cours ou sur une autre feuille du classeur en cours. vous la nommez : INSERTION...

2

caccia, le 21 aoû 2009 à 18:14:21

Si j'ai bien compris ton problème, ça revient à faire une liste déroulante à une seule colonne dans laquelle sont écrites les trois valeurs dont tu as besoin...

un truc du genre:

<select>
<?php
$reponse = mysql_query('ta requete');
while($donnees = mysql_fetch_assoc($reponse)){
echo "<option>".$val1.$val2.$val3."</option>";
}
?>
</select>

Répondre à caccia

3

malabarbe, le 21 aoû 2009 à 18:23:19

Bonjour caccia,

Non, il me faut impérativement 3 colonnes car la police que j'emploie
n'est pas unicode et a l'affichage, pour chaque ligne, les champs
(les données) n'ont pas la mème longueur.

Donc il me faut un champ par colonne pour que tout soit bien aligné !

Répondre à malabarbe

4

caccia, le 21 aoû 2009 à 18:36:46

Je ne suis pas certain de bien situer le problème.

Cependant est-ce que tu ne pourrais pas jouer sur les id de tes tables? Car finalement peu importe ce qui est affiché, ce qui compte dans ta liste déroulante c'est le value="" et ce qu'il y a dedans. Pourquoi ne pas y mettre une valeur référence comme un id?

Et normalement, la liste déroulante s'adapte à la taille la plus grande des données qu'elle affiche, non?

Répondre à caccia

5

malabarbe, le 21 aoû 2009 à 18:46:39

Je m'explique :

Enregistrement 1
Savonette..........Bleue.......12
Enregistrement 2
Savon................Noir.........5

Cela va afficher :
Savonette Bleue 12
Savon Noir 5

Les points représentant des espaces.

C'est pourqoui en plaçant chaque variable dans une colonne,
le formatage serai parfait.

Répondre à malabarbe

6

caccia, le 24 aoû 2009 à 12:04:12

Ben ouai!

Je ne vois pas trop où le fait que ta police ne soit pas unicode est un problème... Normalement en faisant quelque chose qui ressemble à ce que je t'ai montré plus haut, tu peux le faire. Pour certains, il faudrait juste remplacer le while() par un foreach mais en fin de compte ce n'est pas trop le sujet.

Si tu as des questions sur la syntaxe, n'hésite pas!

Pour résumer: tu fais une grosse requête sql (envoyée en php) pour sélectionner les champs et les données qui t'intéresse dans ta bdd. En somme, le type de savon, la couleur de ce savon et le nombre de savons vendus de ce type (c'est ça? :) ) Et pour chaque résultat, tu l'affiches dans un <option></option>.

Répondre à caccia

7

malabarbe, le 24 aoû 2009 à 12:24:32

Bonjour caccia,

Oui, c'est bien cela mais dans la liste, les 3 champs
s'affichent mais concaténés alors que je viudrais des colonnes.

N'en voyant pas le bout, je me suis dirigé vers un tableau :
A chaque lecture d'un enregistrement, je créé un ligne de
tableau avec 3 cellules.
Les données vont bien dans chaque cellule et tout est bien
formaté en colonnes avec des largeurs définissables (OUF !)

Cela tourne bien, ce que je cherche a faire maintenant :
Au passage de la souris sur une ligne du tableau affiché :
- Que la ligne de 3 colonnes change de couleur (rollover)
- Que la petite main apparaisse

Je n'arrive pas a faire cela

Voici mon code :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style>
BODY { margin:0px; }
#ligne a
{
background-color: #f0cd6a; /* Couleur de cellule */
}

#ligne a:link
{
color: #963300; /* Couleur des liens pour toute la ligne */
text-decoration: none;
}

#cel-1 a
{
width: 45px; /* Largeur Lien Cellule 1 */
}

#cel-2 a
{
width: 243px; /* Largeur Lien Cellule 2 */
}

#cel-3 a
{
width: 146px; /* Largeur Lien Cellule 3 */
}

#ligne a:hover
{
background-color: #FFa80F; /* Couleur de fond au survol des liens */
text-decoration:none; /* Gras quand survol des liens */
font-weight:bold;
background-color: #FFa80F;
}
}
</style>

</head>

<body bgcolor="#FFFFE6">
<br><br><br>
<CENTER>
<DIV id='ligne'>
<table border="5" cellspacing="1" id="table1" bordercolor="#963300">
<tr>
<!--<tr onClick="window.location.replace('http://192.168.1.10/appels/t-022.html')"> Le bon -->

<tr onClick="window.location.replace('t-026.php')">


<ul id="cel-1">
<td width="52">11111
<!-- <a href="">cel-1</td>-->
</td>

<ul id="cel-2">
<td width="250">22222
<!-- <a href="2">cel-2</td>-->
</td>

<ul id="cel-3">
<td width="153">33333
<!-- <a href="3">cel-3</td>-->
</td>
</tr>
</table>
</DIV>
</body>
</html>

Eclairez-moi SVP

Ps: C'est le source du test passif, le vrai programme affiche bien les données MySql.

Répondre à malabarbe

8

malabarbe, le 24 aoû 2009 à 22:17:50

Ok caccia,

Un grand merci pour tes conseils

J'ai suivi ton idée et c'est OK

@ +

Répondre à malabarbe

9

 caccia, le 25 aoû 2009 à 14:26:43

Et bien, je suis ravi de savoir que je peux parfois me rendre utile! A très bientôt.

Répondre à caccia
Collection CommentÇaMarche.net