naam & plaats samen in dropdown plaatsen

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Ik ben bezig met een admin gedeelte te maken voor mijn trainingssite.
Hier op probeer ik php te doorgronden.

Maar nu loop ik tegen een probleempje aan waar ik geen oplossing vind op google.

Ik wil een dropdown maken met de namen en plaatsen van de bedrijven in mijn db.

Nu kan ik het natuurlijk zo doen:

PHP:
echo '<option value="'.$record->Klant-id.'" >'.$record->Naam_bedrijf.' - '.$recod->PlaatsVerzend.'</option>';

Maar dan komen de namen en plaatsen niet netjes onder elkaar te staan.
Bestaat er een mogelijkheid om de dropdown te maken met 2 tabellen?

Zo ja, Hoe dan????
 
Alle resultaten ophalen, en van te voren sorteren. Je kunt met OPTGROUP elementen dan kopjes maken met een plaatsnaam, en vervolgens alle bedrijven in die plaats tonen.
 
ik geloof dat je me niet goed begrijpt.

dropdown moet er als volgt ong. uit zien.

kies klant uit lijst
janssen | Amsterdam
pieters | Lutjebroek
koco | brederode
enz.....
De namen en de plaatsen moeten netjes onder elkaar komen testaan

nu is het
janssen - Amsterdam
Pieters - Lutjebroek
Koco- Brederode
van den Broekke - Texel
enz
 
Laatst bewerkt:
Ahzo.

Hmmm... ik denk niet dat dat mogelijk is met een dropdown :( Niet voor zover ik weet iig, sorry.
 
Om dat effect te bereiken zul je naast een wijziging in de php code ook een wijziging in de style moeten aanbrengen.

In php kun je met behulp van strlen() de lengte van een string bepalen. Wanneer je de maximale lengte van een string weet kun je vervolgens bij alle strings extra spaties toevoegen. Als alternatief zou je natuurlijk zelf een lengte kunnen opgeven.

Bij veel moderne fonts is de breedte per letter verschillend. Je zult dus gebruik moeten maken van een monospaced font zoals courier. Een voorbeeld: (voor het gemak maar een array gebruikt)
PHP:
<style>
	select, option {
		font-family: courier;
	}
</style>
<?php
$info = array(
	"Blokker"=>"Den Helder",
	"Van gend en loos"=>"Ede",
	"Gamma"=>"Hendrik Ido Ambacht"
);

$lengte_bedrijf = 0;
$lengte_plaats = 0;
foreach ($info as $Naam_bedrijf => $PlaatsVerzend) {
	if (strlen($Naam_bedrijf) > $lengte_bedrijf) { $lengte_bedrijf = strlen($Naam_bedrijf); }
	if (strlen($PlaatsVerzend) > $lengte_plaats) { $lengte_plaats = strlen($PlaatsVerzend); }
}
echo "<select name='blaat'>";
foreach ($info as $Naam_bedrijf => $PlaatsVerzend) {
	echo "<option>".str_replace(" ","&nbsp;",str_pad($Naam_bedrijf, $lengte_bedrijf))." - ".str_replace(" ","&nbsp;",str_pad($PlaatsVerzend, $lengte_plaats))."</option>\n";
}
echo "</select>";
?>
 
Laatst bewerkt:
Lijkt me toch heel sterk dat niet meer mensen tegen dit probleem aanlopen.
Zal toch wel iets van een oplossing voor zijn.

Ik heb al geprobeerd met tabs &nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp
maar dat is dus niet de oplossing

Ik zit te denken om het resultaat van mijn $record->naam
in een string te plaatsen en dat de string altijd bv 30 karakters lang is.
en hetzelde voor $record->plaats
vervolgens stop ik die 2 samen in de select van de dropdown.

Het mooiste zou natuurlijk zijn als automatische in de records wordt gekeken naar de langste string en dan de rest aanvullen tot zoveel karaters.

Maar dat word nog een flink gepuzzel aangezien ik nog maar een newby ben in php.

Kan iemand mij helpen?

HAHAHA THNX flitsflitsflits jij poste net onder mijn schrijven.....ik zie dat ik wel op de woede weg an het denken was!!!!
 
Laatst bewerkt:
Zijn/wat zijn de andere monospaced font ?

Ik heb Monaco gevonden, is wel mooi maar werkt niet. Times is gelijk als Monaco

Ik heb het volgende ervan gemaakt:
PHP:
<head>
<style type="text/css">
    select, option {
        font-family: courier;
    }
.style1 {
	margin-top: 0px;
	margin-bottom: 0px;
}
</style>
</head>

<?php
include ('connect.php'); //verbinding maken
$query = ("SELECT 
			Naam_bedrijf, PlaatsVerzend, Klant_id
			FROM klanten") ;// Opzoeken Klant gegevens
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
// lengte controle van de woorden
$lengte_bedrijf = 0;
$lengte_plaats = 0;
while($record = mysql_fetch_object($sql))
{

    if (strlen($record->Naam_bedrijf) > $lengte_bedrijf) { $lengte_bedrijf = strlen($record->Naam_bedrijf); }
    if (strlen($record->PlaatsVerzend) > $lengte_plaats) { $lengte_plaats = strlen($record->PlaatsVerzend); }
}
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
?>
<form method="post" name="klant_keuze" target="main" action="forms/klantNAW.php" style=" width: 600px" class="style1">
<select name="zoekklant" style="width: 450px"> 
<option value="kies_klant" >Kies een klant uit de lijst</option>
<?
while($record = mysql_fetch_object($sql))
{
    echo "<option value='".$record->Klant_id."'>"
	.str_replace(" ","&nbsp;",str_pad($record->Naam_bedrijf, $lengte_bedrijf))." -  "
	.str_replace(" ","&nbsp;",str_pad($record->PlaatsVerzend, $lengte_plaats))."</option>\n";
}
?>
</select>
<input name="klant" type="submit" value="Kiezen" /></form>
 
Laatst bewerkt:
Ik gebruik Monaco in UltraEdit, superfijn font. Maar dat even terzijde.

Je kunt niet zomaar een font gebruiken dat jij op je computer hebt staan. Bij andere mensen zal dan een ander font gebruikt worden, aangezien Monaco niet standaard op een Windows PC staat.

Is wel een beetje webdesign 101 dit, maar hier heb je een lijstje met WebSafe fonts:

http://www.ampsoft.net/webdesign-l/WindowsMacFonts.html
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan