Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 18h01   #1
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
Par défaut tableau PHP dans list deroulante

Bonjour,

J'ai actuellement une liste de données recupérées dans ma base de données, sous forme de liste déroulante, mais le nom et le prix des articles sont collées l'un à l'autre.

C'est pour ça que je sollicite votre aide pour pouvoir me dire comment faire un tableau pour mettre la denomination à gauche et le prix à droite.

Voici un bout du code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 <tr>
        <td width="60%" style="font-size:12px">
   &bull; Carte graphique :
   		</td>
        <td width="40%">  <select name="listbox_cg" style="width:600px;"> 
             	<option name="cg" value="cg" >Aucun(e)</option>
 
                    <?php
 
 
					$req = "select distinct * from products p, products_description pd, products_to_categories p2c, categories_description cd where p.products_status = '1' and p.products_id = pd.products_id and p.products_id = p2c.products_id and p2c.categories_id = cd.categories_id and cd.categories_id LIKE '1071' order by p.products_price ASC ";
      	               $sql = mysql_query($req);
                          while ($data = mysql_fetch_assoc($sql)) 
                            {
                                $nom_cg = $data['products_name'];
								$prix_cg = round($data['products_price'] * 1.196, 2);
                                $id_cg = $data['products_id'];
 
                                echo "<option value=$id_cg> ".($nom_cg)." - ".($prix_cg)." €</option>";
 
							}		                   
                      ?>                         
               </select>
           </td>
           </tr>

Merci par avance
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 20h37   #2
Membre confirmé
 
Avatar de provirus
 
Homme Simon Levesque
Consultant informatique
Inscription : février 2009
Messages : 97
Détails du profil
Informations personnelles :
Nom : Homme Simon Levesque
Âge : 26
Localisation : Canada

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : février 2009
Messages : 97
Points : 279
Points : 279
Bonjour,

Si je comprends bien, présentement, les items de la liste déroulante ressemblent à:

et vous voudriez plutôt avoir:

Si c'est le cas, ce n'est pas possible de mettre un tableau dans une liste déroulante. Plusieurs choix de remplacements s'offrent à vous.

1. Vous pourriez continuer d'utiliser la liste déroulante et utiliser str-pad() pour ajouter des espaces au nom et au prix (séparément). Je ne crois pas que mettre un espace fonctionnerait (puisque les navigateurs n'en gardent qu'un), mais il y a un caractère spécial pour faire des espaces dans un document html.

2. Vous pourriez remplacer la liste déroulante par un popup javascript qui affiche un tableau
__________________
Blog - Tutoriels vidéos - Espace DVP
provirus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 10h34   #3
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Je ne suis pas sur d'avoir bien compris ta question.

Est-ce comme provirus l'a dit, tu souhaite appliquer un tableau dans ta liste déroulante ?

Veux-tu afficher un tableau en dehors ?
__________________
Pensez à la balise [CODE].
Aucune réponse aux questions par MP.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 20h40   #4
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
Bonjour,

Je souhaiterais appliquer un tableau dans le menu déroulant pour mettre un peu d'ordre dans tout ça.

Merci pour votre aide
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 09h08   #5
Membre régulier
 
Inscription : juillet 2007
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2007
Messages : 62
Points : 82
Points : 82
Si c'est la mise en page qui t'intéresses je reprend provirus
Citation:
Envoyé par provirus Voir le message
Bonjour,

Si je comprends bien, présentement, les items de la liste déroulante ressemblent à:

et vous voudriez plutôt avoir:

Si c'est le cas, ce n'est pas possible de mettre un tableau dans une liste déroulante. Plusieurs choix de remplacements s'offrent à vous.

1. Vous pourriez continuer d'utiliser la liste déroulante et utiliser str-pad() pour ajouter des espaces au nom et au prix (séparément). Je ne crois pas que mettre un espace fonctionnerait (puisque les navigateurs n'en gardent qu'un), mais il y a un caractère spécial pour faire des espaces dans un document html.
Effectivement les espaces blancs sont ignorés dans <option>. IL faut utiliser ) à la place :

Code :
1
2
3
 
Pomme&nbsp;&nbsp;&nbsp;-&nbsp;10$
Sot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;5$
Il faut penser à la taille du nom du produit qui peut aller de 2 à je ne sais pas trop combien de caractères et au prix
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 09h24   #6
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
Bonjour Kodeya,

Etant donné qu'il est impossible de faire un tableau dans un menu déroulant, puis-je au moins demander à ce que le prix soit aligné à droite du menu déroulant?

Merci par avance.
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 09h46   #7
Membre régulier
 
Inscription : juillet 2007
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2007
Messages : 62
Points : 82
Points : 82
Tu peux faire ça avec css :
Code :
1
2
 
<style type="text/css">select option{text-align:right}</style>
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 10h48   #8
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
C'est encore celui qui comprends rien lol,

j'ai essayé, mais cela me fait des erreurs dans le fichiers.

escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h01   #9
Membre régulier
 
Inscription : juillet 2007
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2007
Messages : 62
Points : 82
Points : 82
C'est quoi comme erreur ?
Pour info , la balise <style> c'est du html et pas du php
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h06   #10
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
J'ai mis la balise style dans le html, mais il me bug tout le fichier actuel.



sinon il me met erreur ligne 632, et basta.
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h17   #11
Membre régulier
 
Inscription : juillet 2007
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2007
Messages : 62
Points : 82
Points : 82
j'ai un peu du mal à imaginer ce qu'il y a à la ligne 632 du code que j'ai jamais vu
sinon regarde le fichier des erreurs php. Peut être tu trouveras la description de l'erreur là bas.
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h20   #12
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
Voici un bout de code pour que tu te fasse une idée.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
<tr>
        <td width="60%" style="font-size:12px">
   &bull; Carte graphique :
   		</td>
        <td width="40%">  <select name="listbox_cg" style="width:600px;"> 
             	<option name="cg" value="cg" >Aucun(e)</option>
 
                    <?php
 
 
					$req = "select distinct * from products p, products_description pd, products_to_categories p2c, categories_description cd where p.products_status = '1' and p.products_id = pd.products_id and p.products_id = p2c.products_id and p2c.categories_id = cd.categories_id and cd.categories_id LIKE '1071' order by p.products_price ASC ";
      	               $sql = mysql_query($req);
                          while ($data = mysql_fetch_assoc($sql)) 
                            {
                                $nom_cg = $data['products_name'];
								$prix_cg = round($data['products_price'] * 1.196, 2);
                                $id_cg = $data['products_id'];
 
                                echo "<option value=$id_cg> ".($nom_cg)." - ".($prix_cg)." €</option></style>";
 
							}		                   
                      ?>                         
               </select>
           </td>
           </tr>
La ligne 632 equivaut à la ligne 20 ici
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h31   #13
Membre régulier
 
Inscription : juillet 2007
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2007
Messages : 62
Points : 82
Points : 82
Il n'y a pas d'erreur php dans ce bout du code. Par contre:
Code :
echo "<option value=$id_cg> ".($nom_cg)." - ".($prix_cg)." €</option></style>";
ce "</style>" apres </option> m'intrigue. C'est pourquoi faire ?


PS
Il est très simple de vérifier si un script php contiens des erreurs PHP en faisant en ligne de commande dans cmd :
Code :
php -l C:\wamp\chemin\vers\script.php
l comme dans lolo
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h33   #14
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
le </style> ne sert à rien, je l'ai supprimer

il s'est mis automatiquement
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h43   #15
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
apres le test que tu m'a donné, il n'y a aucune erreur de syntaxe php.
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h53   #16
Membre régulier
 
Inscription : juillet 2007
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2007
Messages : 62
Points : 82
Points : 82
Si il n'y a pas d'erreurs php mais le navigateur t'affiche toujours l'erreur c'est peut être le cache du navigateur tout simplement. Fait Ctrl+F5 sur cette page
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 15h53   #17
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
1/ dans ton code, écris plutot :
Code :
echo '<option value="'.$id_cg.'">'.$nom_cg.' - '.$prix_cg.' €</option>';
ou MIEUX (ca évite de mélanger code php et code html) :
Code :
1
2
3
4
5
<?php // .......
?>
<option value="<?php echo $id_cg; ?>"><?php echo $nom_cg.' - '.$prix_cg; ?> €</option>
<?php // .......
?>
2/ ... Vous n'avez pas l'impression de vous éloigner de la question initiale ? ...

La question était (en clair) : peut-on formater le contenu d'une balise <option> ?
(pour avoir un bout de texte à gauche et un autre à droite)

La réponse est non.
- en CSS, non, car les différents navigateurs ne l'interprètent pas de la même façon ...)
- avec des espace &nbsp; non plus, car les lettres ont des espacements différents (ex. "i" et "m" ...)

Cela dit, ici, il existe ici 2 solutions :
a/ la facile :
comme le prix peut etre formater (de la forme : xxx,xx €) -> voir number_format ()
=> il suffit simplement de mettre le prix AVANT !

b/ la (plus) compliquée :
remplacer le <select>...<option> ... par un système <div><ul><li>... afin de SIMULER la liste déroulante.
(par contre, je ne retrouve plus le lien vers un exemple que j'avais vu ..)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 16h13   #18
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
1
2
3
4
5
6
7
<div id="menu">
    <ul>
	<li><a href="#">lien1</a></li>
	<li><a href="#">lien2</a></li>
	<li><a href="#">lien3</a></li>
    </ul>
</div>
De ce style.
__________________
Pensez à la balise [CODE].
Aucune réponse aux questions par MP.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 16h39   #19
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
J'ai retrouvé le lien !
=> Personnalisation d'un formulaire XHTML en Javascript et CSS => "IV. Le select"
(finalement pas si compliqué !)

Les lignes auront donc cette forme :
Code :
1
2
3
4
5
6
<li>
	<a href="javascript:void(0)" onclick="validAndHide('<?php echo $id_cg; ?>', this, 'blabla', 'select1')">
	<span style="float:left;"><?php echo $nom_cg; ?></span>
	<span style="float:right;"><?php echo $prix_cg; ?> €</span>
	</a>
</li>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 19h35   #20
Invité de passage
 
Homme Jeff
Technicien maintenance
Inscription : juillet 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Jeff
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : juillet 2011
Messages : 21
Points : 4
Points : 4
Bonsoir,

Merci a Kodeya, Jreaux62, Gwharl pour l'attention que vous avez porté à mon problème.

Le code de Gwarl n'est pas réalisable a cause de mes variables. Je peux trezs bien avoir 3 lignes comme 108 lignes.

Je vais suivre l'idée de Jreaux62, mettre le prix en premier, ça sera beaucoup plus simple.

Encore une question, peut t-on demandé que le texte aille à la ligne quand il ets plus long que le menu deroulant, et peut-on mettre le prix en couleur et en gras?

Merci par avance.
escalibur2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h39.


 
 
 
 
Partenaires

Hébergement Web