[PHP] Variable combineren, gefixeerde lengte

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GenetiX
  • Registratie: November 2000
  • Laatst online: 21-03 14:36
Ik heb twee variabelen welke ik uit SQL haal. Deze moeten gecombineerd in een dropdown box komen. Variabelen komen uit een Mysql fetch. Voor het overzicht wil ik graag dat het er wat beter uitziet dan nu:

9288SS Omschrijving 1
233 Omschrijving 2

Hoe kan ik deze twee variabelen combineren zodat de omschrijving op een gefixeerde positie terecht komt zodat ik zoiets krijg:

9288S -- Omschrijving 1
233 -- Omschrijving 2

Dit is mijn huidige stukje code om de dropdown box te vullen. Volgens mij is het daar sowieso niet aanpasbaar en moet ik echt eerst een nieuwe variabele creeëren.

PHP:
1
2
3
4
5
6
7
echo "<select name=code=''><option>-- Kies een code --</option>";
while($nt=mysql_fetch_array($result)){

echo "<option value=\"".$nt[0]."\">".$nt[0]." ".$nt[1]."</option>";

}
echo "</select>";// Closing of list box 


Voor de duidelijkheid, het gaat om het uitlijnen, maar dat komt hier niet helemaal over.

[ Voor 5% gewijzigd door GenetiX op 09-05-2008 11:26 ]


Acties:
  • 0 Henk 'm!

  • Dennahz
  • Registratie: November 2001
  • Laatst online: 22:19

Dennahz

Life feels like hell should.

Eh, gewoon 2 streepjes tussen
PHP:
1
".$nt[0]." -- ".$nt[1]."
zetten ?

Is gewoon mogelijk hoor.

Twitter


Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 22-09 13:52
Hebben we het nu over uitlijning? Dat gaat namelijk niet 123 werken in een select. Wat je wel kunt doen, is met behulp van strlen() bepalen hoe lang je string is en deze aanvullen met spaties of  

Als je dan gebruik maakt van Courier New, dan zal het uitlijnen misschien wel werken.

De streepjes ertussen stelt niet veel voor:

PHP:
1
2
3
4
5
6
7
echo "<select name=code=''><option>-- Kies een code --</option>"; 
while($nt=mysql_fetch_array($result)){ 

echo "<option value=\"".$nt[0]."\">".$nt[0]." -- ".$nt[1]."</option>"; 

} 
echo "</select>";// Closing of list box 

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Je oplossing gaat alleen werken met een monospace font, zoals storeman een voorbeeld geeft met de Courier family. Verder zou ik niet een spatie maar een non-breaking space gebruiken als je ermee wil uitlijnen ;)

Misschien moet je kijken naar je presentatie, omdat afaik ik niet zie waarom je dit in een select moet presenteren. Zoek een andere oplossing (waarom niet "Omschrijving (code)" bijvoorbeeld?) :)

Acties:
  • 0 Henk 'm!

  • GenetiX
  • Registratie: November 2000
  • Laatst online: 21-03 14:36
storeman schreef op vrijdag 09 mei 2008 @ 11:23:
Hebben we het nu over uitlijning? Dat gaat namelijk niet 123 werken in een select. Wat je wel kunt doen, is met behulp van strlen() bepalen hoe lang je string is en deze aanvullen met spaties of  

Als je dan gebruik maakt van Courier New, dan zal het uitlijnen misschien wel werken.

De streepjes ertussen stelt niet veel voor:

PHP:
1
2
3
4
5
6
7
echo "<select name=code=''><option>-- Kies een code --</option>"; 
while($nt=mysql_fetch_array($result)){ 

echo "<option value=\"".$nt[0]."\">".$nt[0]." -- ".$nt[1]."</option>"; 

} 
echo "</select>";// Closing of list box 
Het gaat om het uitlijnen inderdaad, streepjes er tussen lukt nog wel ;) Ik krijg dat in de opmaak van de openingspost niet helemaal lekker.

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 22:00

orf

Een paar jaar geleden heb ik hier iets mee gedaan:
DOM select replacement

Met javascript een select replacen naar een table die eruit ziet als een multiselect. Misschien heb je er wat aan. :)

Acties:
  • 0 Henk 'm!

  • GenetiX
  • Registratie: November 2000
  • Laatst online: 21-03 14:36
orf schreef op vrijdag 09 mei 2008 @ 11:34:
Een paar jaar geleden heb ik hier iets mee gedaan:
DOM select replacement

Met javascript een select replacen naar een table die eruit ziet als een multiselect. Misschien heb je er wat aan. :)
Ziet er goed uit. Als ik er op een standaard php manier niet uitkom kan ik hier eens naar kijken.

Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
http://nl3.php.net/manual/en/function.str-pad.php
en inderdaad een fixed-size font gebruiken?

Acties:
  • 0 Henk 'm!

  • GenetiX
  • Registratie: November 2000
  • Laatst online: 21-03 14:36
Met str_pad kan ik er één variable van maken die er dan netjes zo uit ziet: "1234 --helloworld" Dat is waar ik naartoe wil. Echter, in IE worden die spaties gewoon verwijderd in de weergave terwijl ze wel in de source staan. Zowel in tekst als in de dropdown list box. Ik heb lettertype courier al geprobeerd. Any clue?

Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
GenetiX schreef op vrijdag 09 mei 2008 @ 12:11:
Met str_pad kan ik er één variable van maken die er dan netjes zo uit ziet: "1234 --helloworld" Dat is waar ik naartoe wil. Echter, in IE worden die spaties gewoon verwijderd in de weergave terwijl ze wel in de source staan. Zowel in tekst als in de dropdown list box. Ik heb lettertype courier al geprobeerd. Any clue?
Je moet een non-breaking space gebruiken, niet een normale spatie. Als je in de broncode kijkt, zie je wel dat juiste aantal spaties er staat.

Acties:
  • 0 Henk 'm!

  • Toolskyn
  • Registratie: Mei 2004
  • Laatst online: 22-06 11:01

Toolskyn

€ 500,-

ChessSpider schreef op vrijdag 09 mei 2008 @ 12:22:
[...]


Je moet een non-breaking space gebruiken, niet een normale spatie. Als je in de broncode kijkt, zie je wel dat juiste aantal spaties er staat.
Dat, of je gebruikt de css property white-space: pre;

gewooniets.nl


Acties:
  • 0 Henk 'm!

  • GenetiX
  • Registratie: November 2000
  • Laatst online: 21-03 14:36
ChessSpider schreef op vrijdag 09 mei 2008 @ 12:22:
[...]


Je moet een non-breaking space gebruiken, niet een normale spatie. Als je in de broncode kijkt, zie je wel dat juiste aantal spaties er staat.
Klopt, maar ik kan &nbsp niet gebruiken i.p.v. normale spaties in het str_pad commando. En bij het handmatig tussenvoegen schuift de boel natuurlijk alleen maar op.

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Dan pak je str_repeat() met $max_length - strlen(), of vervang je gewoon na het padden de spaties door &nbsp; :z En zo nog 1001 mogelijke manieren met basic string functies, welke stuk voor stuk niet meer dan 15 seconden mogen kosten.

[ Voor 34% gewijzigd door Voutloos op 09-05-2008 12:36 ]

{signature}


Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
GenetiX schreef op vrijdag 09 mei 2008 @ 12:32:
[...]

Klopt, maar ik kan &nbsp niet gebruiken i.p.v. normale spaties in het str_pad commando. En bij het handmatig tussenvoegen schuift de boel natuurlijk alleen maar op.


&nbsp moet je ook niet gebruiken.. Het is &nbsp;. Mocht je de ; niet vergeten zijn, snap ik niet echt wat er mis gaat.
Ik denk niet dat het iets is waar je na een halve dag staren en schelden nog niet uitgekomen bent, waarna een /slap moment volgt.. Mocht je anders vermoeden, moet je nog maar even een reply posten :) (ookal denk ik dat het geen kwaad daar 12 uur mee te wachten)


Lol, het /slap moment is voor mij :p. Inderdaad, lees de reactie boven mij.

[ Voor 10% gewijzigd door ChessSpider op 09-05-2008 13:50 ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Zie mijn reactie. Ik denk dat TS direct met &nbsp; wou padden en dat is uiteraard geen succes. :P

[ Voor 9% gewijzigd door Voutloos op 09-05-2008 13:46 ]

{signature}


Acties:
  • 0 Henk 'm!

  • GenetiX
  • Registratie: November 2000
  • Laatst online: 21-03 14:36
Gelukt, met het volgende stukje code. Drop down box wordt displayed in font courier. $nt is de mysql_fetch.

PHP:
1
2
3
4
$output = str_pad($nt[0],10,"*");
$output2 = str_replace ("*", "&nbsp", $output);

echo "<option value=\"".$nt[0]."\">".$output2."".$nt[1]."</option>";
Pagina: 1