Goedemorgen allen.

Ik heb in een gedeelte van mijn website een select box zitten waarvan hij de value opslaat in een mysql database. Dit gaat allemaal goed. Maar nu wil ik natuurlijk dat zodra ik diezelfde select box te zien krijg dat hij de waarde daarvan al heeft 'selected' in de select box.

Hier is hoe ik dat nu doe (in het kort):
-----------------------------
($r->location == ""){
$niks = "selected";
}
elseif ($r->location == "north"){
$north = "selected";
}
----------------------------
en de select zelf:

<select name='location'>
<option value='' $niks>Amsterdam</option>
<option value=north $north> - North</option>

Dit is het even in het kort, eigenlijk heb ik zo'n 20 select options dus om 20 elseif's te maken en elke een aparte variabele te geven lijkt mij te omslachtig.

Is er een mogelijkheid om dit te vermakkelijken/in te korten??

Bedankt
Ja. Ik doe het altijd zo:

ik maak een tabel in mijn MySql database met alle waardes voor de options van de select.

Daarna doe ik dit:

<?php
function select_from_albums () {
$sql = "select * from albums order by naam";
$res = mysql_query ($sql);

echo '<select id="album" name="album">';

while ($row = mysql_fetch_array ($res)) {
if ($_POST[album] == $row[ID]) {
echo "\n<option value=$row[ID] selected>$row[naam]</option>";
}
else {
echo "\n<option value=$row[ID]>$row[naam]</option>";
}
}

echo '</select>';
}
?>

Dit is een voorbeeld waarbij ik een aantal namen van fotoalbums ophaal. Als waarde voor de option neem ik de id uit de tabel albums.

Op deze manier kom je af van de constructie:

if
elseif
elseif
elseif

enzovoort

Reageren