Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 23/02/2008, 23h05   #1
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 139
Points : 18
Points : 18
Par défaut Liste déroulante html

bonjour,

j'utilise des listes déroulantes basées sur un contenu de base mysql.

Tout fonctionne bien. J'aimerai néanmoins améliorer ces listes de cette manière.
j'aimerai créer une unique liste déroulante comportant 2 informations: un objet et ses sous objets.

Mais je voudrais que seuls les sous objets soient cliquables. (qu'il soit impossible de sélectionner un objet)
Est-ce possible de faire cela en html+php
(j'ai vu cela sur le site d'une boite mais en jsp)

Merci de votre aide

Kirk
khamett est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 08h42   #2
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

L'élément html '<optgroup>' devrait faire ton affaire.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 12h19   #3
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 139
Points : 18
Points : 18
impeccable, je ne connaissait pas.

Merci Jeca
khamett est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 14h58   #4
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 139
Points : 18
Points : 18
Juste une précision concernant les balise optgroup

je l'ai inséré dans mon code php... plus précisement dasn une condition + boucle.

Mon code ne me permet pas de l'insérer de manière correcte.

voici un bout de mon code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
while (...) 
{
if  bidule!=$bidule
{
echo ("</optgroup>");
echo ("<optgroup label="truc">");
echo ("<option value=\"machin\">".$machin.''</option>");
}
else
{
echo ("<option value=\"machin\">".$machin.''</option>");
}
ça marche très bien, mais comme vous pouvez le voir, pour la 1ère itération je commence d'abord par fermer la balise avant de créer mon 1er optgroup.

Pour les suivantes, pas de pb, mais c'est pour la 1ère boucle.

Puis-je laisser comme ceci sachant que cela à l'air de fonctionner parfaitement (sous IE et FF). (au début je n'avais pas mis de balise fermante pour le optgroup, mais c'est apparemment fortement conseillé

merci

PS: j'avais testé en inversant la condition (commencer par bidule==$bidule) mais cela me rallonge mon code de 6 lignes...)
khamett est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 17h01   #5
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$rupture = "";
while (...) 
{
if  ($bidule != $rupture)
{
  if ($rupture != "") echo ("</optgroup>");
  echo ("<optgroup label="truc">");
  $rupture = $bidule;
}
echo ("<option value=\"machin\">".$machin."</option>");
}
if ($rupture != "") echo ("</optgroup>");
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 20h06   #6
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 139
Points : 18
Points : 18
merci pour ta réponse...

ca me fait un peu plus de ligne mais c'est plus propre.

dernière question:

je remarque dans ma liste que l'item optgroup n'est pas rendu correct. IL s'agit de ville contenant des espaces.

voici mon code:

Code :
1
2
 
echo ("<optgroup label=".$result['Ville'].">");
ex: "chalon en champagne" j'obtiens "chalon".

je suis sur qu'il ne s'agit que d'un guillemet manquant ou une connerie comme cela.

Mais bon
khamett est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 21h08   #7
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
et avec ça ?
Code :
echo ("<optgroup label=\"".$result['Ville']."\">");
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 21h23   #8
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 139
Points : 18
Points : 18
effectivement ça marche mieux, mais j'avoue ne pas trop comprendre le principe des double guillemets

sinon j'avais essayé cela:

Code :
1
2
 
echo '<optgroup label="'.$result['Ville'].'">';
vaut il mieux utiliser l'une des 2 solutions plutôt que l'autre ou toutes les 2 se valent ?
khamett est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 21h48   #9
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Sans le guillement supplémentaire, le résultat de l'echo sera
<optgroup label=chalon en champagne> donc en et champagne seront interprétés comme des paramètres (invalides) de <optgroup>.
Avec le simple guillemet, ou le double avec \ pour l'échapper on aura
<optgroup label="chalon en champagne">
edit : le simple guillement pour "envelopper" l'echo permet d'éviter le \", c'est plus pratique pour afficher du code html qui est plein de option="valeur". plus court, plus lisible ...
ex:
Code :
1
2
3
echo '<input type="text" name="text1" size="60" maxlenghth="60">';
// ou
echo "<input type=\"text\" name=\"text1\" size=\"60\" maxlenghth=\"60\">";
zvince 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 03h37.


 
 
 
 
Partenaires

Hébergement Web