Ik gebruik deze code:

<?
echo "Rang<br />";
echo "<select name=\"rang\">
<option value=\"Gebruiker\" />Gebruiker</option>
<option value=\"Moderator\" />Moderator</option>
<option value=\"Hulpwebmaster\" />Hulpwebmaster</option>
<option value=\"Betaald\" />Betaald</option>
<option value=\"Webmaster\" />Webmaster</option>
</select>";
?>

Maa rhoe kan ik nou kijken welke in de database staat, en die het atribuut checked geven..
Ik werk verder met levels (0 t/m 4)
Bij een select moet je de optie selected geven en niet checked.

Je moet het als volgt doen:
<?php
// Haal de troep op uit je DB
$query = mysql_query("");

$result = mysql_fetch_row($query);

// Ik ga er nu vanuit dat de waarde voor de select onder $result[0] zit

echo "<select name=\"rang\">\n";
if ($result[0] == "Gebruiker")
{
echo "<option value=\"Gebruiker\" selected>Gebruiker</option>\n";
} else {
echo "<option value=\"Gebruiker\">Gebruiker</option>\n";
}
?>

Persoonlijk vind ik het niet de mooiste manier. Als je een database hebt en die goed genormaliseerd hebt weet je dat je vaker de 'rangen' kan gebruiken. Dus eigenlijk moet je een tabel met id en rangnaam hebben. En in de tabellen waar je het nodig hebt gebruik je een vreemde sleutel (de id van de rangnaam). Op deze manier kan je heel gemakkelijk de rangen gebruiken.

En misschen heb je het nu niet nodig, maar voor hetzelfde geld wil je er een keer een rang bijzetten, dan moet je alle codes veranderen, terwijl je anders alles helemaal dynamisch hebt.

Elwin

Reageren