Créer unr liste déroulante à 3 colonnes

Résolu/Fermé
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 - 21 août 2009 à 15:18
caccia Messages postés 95 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 16 juin 2010 - 25 août 2009 à 14:26
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.
A voir également:

6 réponses

caccia Messages postés 95 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 16 juin 2010 16
21 août 2009 à 18:14
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>
0
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
21 août 2009 à 18:23
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é !
0
caccia Messages postés 95 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 16 juin 2010 16
21 août 2009 à 18:36
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?
0
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
21 août 2009 à 18:46
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.
0
caccia Messages postés 95 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 16 juin 2010 16
24 août 2009 à 12:04
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>.
0
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
24 août 2009 à 12:24
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.
0

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

Posez votre question
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
24 août 2009 à 22:17
Ok caccia,

Un grand merci pour tes conseils

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

@ +
0
caccia Messages postés 95 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 16 juin 2010 16
25 août 2009 à 14:26
Et bien, je suis ravi de savoir que je peux parfois me rendre utile! A très bientôt.
0