Formatter dans un select

cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012 - 28 mars 2004 à 00:57
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 - 30 mars 2004 à 21:34
Bonjour,

Je veux formatter l'affichage d'un select a savoir :

faire afficher des données les une sous les autres (voir exemple):

nom | age | ville |
Claude | 36 | Paris |
Joe | 22 | Marseille |

Il faudrait donc completer les noms et ville par des espaces à la fin pour obtenir (par ex) 20 caracteres, au contraire, les coupé si ils en font +.

Malheureusement, dans un select, les espaces a repétitions sont ignorés...

Quelqu'un peut-il m'aider ?

15 réponses

cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012
28 mars 2004 à 00:59
On le voit pas tres bien, mais le but est de les aligner correctement les uns sous les autres (les '|' correctement sous les '|' de la ligne du dessus)
0
i0Lo Messages postés 62 Date d'inscription jeudi 7 novembre 2002 Statut Membre Dernière intervention 5 mai 2004
28 mars 2004 à 22:45
c'est simple
tu prepares ton tableau avec
ton en haut
ton renvoi d'information et ta recupération de variables
$incme = 0;
while($incme < nombreinfossortiesdelabase) {
echo 'Forme1:, ';
echo '<center>$variableforme1</center>, ';
$incme++;
}
echo '';
echo '
';

ceci est un exemple de code qui pourrait te mettre sur la voix :)
0
cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012
29 mars 2004 à 09:26
As-tu lu que je veux faire ca dans un SELECT (une liste de choix; je dis ca au cas ou...).

Donc ton code ne marchera pas... Mais merci pour ta réponse !
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
29 mars 2004 à 10:56
si j'ai bien compris c'est simple
en reprenant la même idée que celle de i0lo mais tu utilise la balise <select> au lieu de <table>

struture d'une <select>:

<select>
<option>blabla1</option>
<option>blabla2</option>
<option>blabla3</option>
</select>

après pour le contenu des options ben tu assemble ta chaine et tu la limite au nombre de caractère que tu souhaite
si tes données sont dans un tableau
ça donne ça (si ta que 3 colonne à assemblé sinon fé une boucle)
$chaine = $data[0].$data[1].$data[2]
pis pour limité la longueur:
$chaine= substr($chaine,0,20)

et donc tu mets ça dans une boucle while par exemple et vala tu as ton select
0

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

Posez votre question
i0Lo Messages postés 62 Date d'inscription jeudi 7 novembre 2002 Statut Membre Dernière intervention 5 mai 2004
29 mars 2004 à 14:32
lol merci DoudouBidou

Moi comme j'ai marqué, j'avais juste mis ce code à titre d'exemple, suffit juste de changer deux trois trucs et ce code peut être utilisé pour n'importe quoi... c'est un truc de base à savoir

Bon code ;)
0
cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012
29 mars 2004 à 15:22
Oui , mais si j'utilise ca :
$chaine = $data[0].$data[1].$data[2]

les données ne seront pas les unes sous les autres alignée en colonne...

De plus, si je fais:
$chaine= substr($chaine,0,20)

Ca va me couper la chaine entiere au risque de ne plus voir $data[2]...
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
29 mars 2004 à 15:52
hum oui mais tu pourra pas (sauf si je me trompe) mettre des données en colonne dans un select

ce que tu voudrais toi c'est qqc comme ça
<select>
<option>nom
age
ville</option>
<option>nom
age
ville</option>
</select>

biensur le code ci-dessus ne marche pas ;)
et je ne vois pas comment tu pourrais faire une mise en forme de ce style sachant que dans un select chaque ligne correspond à un choix

pour le 2nd pb de couper ta chaine, c'est pas ce que tu voulais?si non faut pas limiter à 20caractères....
0
cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012
29 mars 2004 à 16:05
Je veux faire un truc dans ce genre...
0
cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012
29 mars 2004 à 16:07
Ca s'affiche pas... http://aby.waouh.net/select.jpg
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
29 mars 2004 à 16:47
ah là d'accord je comprends mieux
mais à première vue... je ne sais pas faire en HTML

mais ça m'interesse je vais voir si je trouve qqc à faire

:)
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
29 mars 2004 à 19:41
pour mettre tout des mots sur 20 caratéres

function miseenforme($ch)
{
 $resch="                    "; //20 espaces
 if(strlen($ch)<=strlen($resch))
 { 
  $resch=substr_replace($resch, $ch,0,strlen($ch)); 
 }
 else 
 {
  $resch=substr($ch, 0, 17)."...";  
 }
 return $resch;
}

et aprés
print "<select>
<option>".miseenforme($nom1)."|".miseenforme($age1)."|".miseenforme($ville1)."</option>
<option>".miseenforme($nom2)."|".miseenforme($age2)."|".miseenforme($ville2)."</option>
<option>".miseenforme($nom3)."|".miseenforme($age3)."|".miseenforme($ville3)."</option>
</select>
";


enfin j'ai pas testé !!!!
il faudra surement le débuguer
:sad)

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
30 mars 2004 à 08:57
en cherchant un peu sur le net j'ai trouvé qqc de sympa qui permet de faire des select box personnaliser
je pense que ça peut t'aider pour ton problème :)

http://webfx.eae.net/dhtml/select/jsGenerated.html

mais ça fonctionne qu'avec IE par contre...

:)
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
30 mars 2004 à 11:12
vu que ça m'interesse j'ai cherché un peu ce qu'on pouvait faire alors je me suis dis qu'on pouvait contourner le problème en utilisant un tableau !
je vais pas te faire tout le boulot mais ça peut servir de base ;)

<html>
<head>
<SCRIPT type="text/javascript">
var couleur='#ffffff';
function trover(obj) {
couleur = obj.bgColor;
obj.bgColor='#bbffff';
obj.style.border='solid';
obj.style.cursor= 'hand';
}
function trout(obj) {
obj.bgColor=couleur;
}
function trclick(obj) {
for (i=0;i
</head>

<form name="form">


<SCRIPT type="text/javascript">
alltr = document.getElementById("select1").getElementsByTagName("tr");
for (i=0;i

</html>

</td></tr></table>

il reste à transformer tout ça en une fonction "portable" ;)
0
cs_Cestmoi Messages postés 75 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 3 juin 2012
30 mars 2004 à 12:17
Merci, je vais plutot me tourner vers le lien que tu m'as filé...

+++
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
30 mars 2004 à 21:34
tiens j'ai fait une petite source simple si ça peut t'aider ;)

fr.com/code.aspx?ID=21582 http://www.javascriptfr.com/code.aspx?ID=21582

allé bonne continuation
0
Rejoignez-nous