Toon posts:

[PHP] Selected in dropdown van edit-pagina

Pagina: 1
Acties:

Verwijderd

Topicstarter
Situatieschets: De gebruiker vult een formulier in en zijn gegevens worden ingevuld in een database. Als nou de gebruiker zijn gegevens wil wijzigen, komt hij in een pagina met een zelfde formulier, met zijn waardes alvast ingevuld. Voor achternaam bijvoorbeeld is dat geen probleem:

<input type="text" name="lastname" value="<?php echo"$info[lastname]"; ?>">

Maar met dropdowns zou het ook netjes zijn om de juiste keuze op selected te zetten. (Als bijvoorbeeld Nederland het gekozen land is, dat de dropdown op Nederland staat)

Nou zou je voor elke regel kunnen checken:

<option value="NL" if ($info[country]=='NL'){echo "selected";} >Nederland</option>

Maar dan zou je voor 100 landen erg veel kramp in je vingers krijgen.

Je kan ook een regel aan het begin toevoegen met de database waarde als selected:

<option value="<?php echo "$info[country]"; ?>" selected><?php echo "$info[country]"; ?></option>

maar dan krijg je NL te zien, i.p.v. Nederland.

Heeft iemand een idee voor een nette oplossing voor dit probleem?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[topic=348149/1/25]

[search=php select]

dat was nie echt moeilijk hoor

Doet iets met Cloud (MS/IBM)


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
for each $land do
{
if $land == $country $zooi=selected
echo <option $zooi>$land;

}


en dan in goed php :)



D2k: STFU :( ;)

Verwijderd

Topicstarter
Als je for each $land do wil gebruiken, dan moeten al je landen, die je wil gaan afdrukken, uit een database of array komen. Bij mij staat er in de database alleen NL en voor de rest staat de landentabel hardcoded in de html:

<select name=country width = 150>
<option value="AL">ALBANIA</option>
<option value="DZ">ALGERIA</option>
<option value="AD">ANDORRA</option>
....

Naar mijn idee kan je dan geen for gebruiken om bij de juiste selected te zetten??

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Dan moet je ze dus eerst in een array of de DB pleuren, idd. Dat kan je vast ook wel doen met PHP (pleur alle opties in een los txtbestandje, strip de troep en zorg dat t netjes in een arraytje komt).

Manuzhai

Rustacean


Verwijderd

Topicstarter
Ik ben al surfende een mooi javascriptje tegengekomen, die de hele oplossing weergeeft!

function initSelect(control,value) {
// Initialize a selection list (single valued)
if (value == "") return;
for (var i = 0; i < control.length; i++) {
if (control.options[i].value == value) {
control.options[i].selected = true;
break;
}
}
}

Voor control -> de dropdown naam, voor value -> de database value

Misschien dat ik hier anderen mee kan helpen!!

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
fijn :)
gebruik voortaan ff [code]code[/code]
om code weer te geven. Kan ook [php]php[/php] zijn :)
Pagina: 1