Mise en forme de zones de liste multiple

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mise en forme de zones de liste multiple

par mere-teresa » 24 févr. 2006, 17:02

Modération : je déplace ton message dans HTML et CSS, où tu auras des réponses de spécialistes.

par jduv » 24 févr. 2006, 16:52

Bonjour
Alors la je suis calmé pour un moment, le temps pour moi d'arriver à comprendre et surtout à appliquer cela dans mon code.
Merci beaucoup je vais m'y mettre
J'étais en train de tenté quelque chose avec un sprintf mais bon si ce n'est pas possible.

Encore merci.
:shock: :shock: :shock:

par Ryle » 24 févr. 2006, 16:39

[BQS]Jayce à raison et tu n'as effectivement pas vraiment d'autres alternatives...

La police Courier - ou Courier new - est idéale pour ça, car elle est présente par défaut sur quasiment tous les os et te permet d'avoir la même largeur pour tout tes caractères (aussi bien le i que le w). Il suffit donc de l'ajouter dans la déclaration du style (de mémoire : font-family:courier)

Ensuite, il faut compléter tes lignes avec des espaces blancs, le problème c'est que le html fusionne deux espaces consécutifs, et que dans une liste, les   apparaissent en clair. Il faut donc utiliser le caractère espace insécable (code ascii 0160) pour completer tes chaines. L'idéal est de faire une fonction de type pad :
function padRight($string, $size, $char) {
  while (strlen($string) < $size) { // tant qu'on a pas la taille souhaité
    $string.= $char; // ajoute le caractère à la fin
  }
  return $string;
}

$optionLibelle = padRight("BBB", 10, " ") . " : " . "AAAA";
// attention le caractère utilisé dans padRight n'est pas un espace classique
// tu peux l'obtenir en mainteant alt enfoncé et en tapant le code 0160 sur le pavé avant de relacher le alt. 
// Il aussi peut être copié collé ;)
Cela t'ajoutera automatiquement 7 espaces insécables après les "BBB" (pour arriver à 10) et tu pourras ainsi construire ta chaine :)

par Hermès » 24 févr. 2006, 16:26

Yep, je pense pas que tu puisses formater ton texte mieux qu'avec cette méthode...

par [BQS]Jayce » 24 févr. 2006, 16:15

liste deroulante :

BBB____:_AAA
CCCCC_:_XXXX
DD_____:_AAA
XXX____:_YYYY
C'est exactement cela, désolé pour les explications peu claires.
En fait le premier champ est une abbréviation et le second sa description compléte.

Merci
:roll:
le mieux serait de definir une police pour laquel les chiffres, les caracters alpha et les espaces ont la meme taille...

ensuite tu remplaces par des &nbsp; (espace) les carateres manquant..

par jduv » 24 févr. 2006, 16:04

liste deroulante :

BBB____:_AAA
CCCCC_:_XXXX
DD_____:_AAA
XXX____:_YYYY
C'est exactement cela, désolé pour les explications peu claires.
En fait le premier champ est une abbréviation et le second sa description compléte.

Merci
:roll:

par [BQS]Jayce » 24 févr. 2006, 15:49

je crois avoir compris dans la liste qu'il veux :

liste deroulante :

BBB____:_AAA
CCCCC_:_XXXX
DD_____:_AAA
XXX____:_YYYY

('_' represente les caracteres vides)

au lieu de

BBB : AAA
CCCCC : XXXX
DD : AAA
XXX : YYYY

par Hermès » 24 févr. 2006, 15:45

Tu appliques une feuille de style :

Code : Tout sélectionner

select { width:50px; }
De plus, chacune de ces liste charge 2 champs, est il possible d'aligner les champs à l'interieur de la liste (tabulation) ?.
J'ai du mal à saisir ce point là.
Tu veux que dans ta liste le texte ait un décalage par rapport au bord ?

Re: Mise en forme de zones de liste multiple

par [BQS]Jayce » 24 févr. 2006, 15:14

Bonjour à tous,
J'ai sur un formulaire plusieurs liste à choix multiples, elles sont chargées à partir de requetes SQL (postgre) .
Mon probléme est que la largeur à l'affichage est definie par la taille du champ le plus long et du coup elles ne font pas toutes la même largeur, ce qui n'est pas top visuellement, je tente en vain d'imposer la largeur de ces listes.
De plus, chacune de ces liste charge 2 champs, est il possible d'aligner les champs à l'interieur de la liste (tabulation) ?.
C'est purement esthetique mais ca compte.
Quelqu'un a t'il un tuto ou un exemple la dessus ??
Merci d'avance

Ci joint un exemple de liste
<SELECT name="param[]" multiple="true" tabindex="1">
<?php
	$query = pg_query($db,"SELECT code_param,libelle_param FROM t_meteo_param WHERE code_param IN ('rr','rrx','s1n','s1x','s5m','tm','tmc','tn'
,'tx','amp','um','rg','rgc','dic','etpp','v','vx','cvx')") or die ("Echec sur pg_query".pg_last_error($db));
while ($object = pg_fetch_object($query)) 
	{
	echo "<option value=$object->code_param > $object->code_param"." : "." $object->libelle_param</option>";
	}
	pg_free_result($query);
?>
</SELECT>
recherche plus dans "les style" des boutons

peut etre un size=xx bien placé..

Mise en forme de zones de liste multiple

par jduv » 24 févr. 2006, 15:03

Bonjour à tous,
J'ai sur un formulaire plusieurs liste à choix multiples, elles sont chargées à partir de requetes SQL (postgre) .
Mon probléme est que la largeur à l'affichage est definie par la taille du champ le plus long et du coup elles ne font pas toutes la même largeur, ce qui n'est pas top visuellement, je tente en vain d'imposer la largeur de ces listes.
De plus, chacune de ces liste charge 2 champs, est il possible d'aligner les champs à l'interieur de la liste (tabulation) ?.
C'est purement esthetique mais ca compte.
Quelqu'un a t'il un tuto ou un exemple la dessus ??
Merci d'avance

Ci joint un exemple de liste
<SELECT name="param[]" multiple="true" tabindex="1">
<?php
	$query = pg_query($db,"SELECT code_param,libelle_param FROM t_meteo_param WHERE code_param IN ('rr','rrx','s1n','s1x','s5m','tm','tmc','tn'
,'tx','amp','um','rg','rgc','dic','etpp','v','vx','cvx')") or die ("Echec sur pg_query".pg_last_error($db));
while ($object = pg_fetch_object($query)) 
	{
	echo "<option value=$object->code_param > $object->code_param"." : "." $object->libelle_param</option>";
	}
	pg_free_result($query);
?>
</SELECT>