Lieber borisbaer,
Du kannst drei Zustände für einen Wert als Radio-Buttons realisieren. Für jeden User bildest Du ein Set an Radio-Buttons ab:
<fieldset>
<legend>Einstellungen</legend>
<form method="POST">
<dl>
<dt>Dark-Mode</dt>
<dd>
<label for="user_0001_setting_0001_value_0">
<input
name="user_0001_setting_0001"
type="radio"
value="0"
id="user_0001_setting_0001_value_0"
>
Habe ich nicht
</label>
<label for="user_0001_setting_0001_value_1">
<input
name="user_0001_setting_0001"
type="radio"
value="1"
id="user_0001_setting_0001_value_1"
>
Habe ich
</label>
<label for="user_0001_setting_0001_value_2">
<input
name="user_0001_setting_0001"
type="radio"
value="2"
id="user_0001_setting_0001_value_2"
>
Will ich nicht
</label>
</dd>
<dt>Display MOTD</dt>
<dd>
<label for="user_0001_setting_0002_value_0">
<input
name="user_0001_setting_0002"
type="radio"
value="0"
id="user_0001_setting_0002_value_0"
>
Habe ich nicht
</label>
<label for="user_0001_setting_0002_value_1">
<input
name="user_0001_setting_0002"
type="radio"
value="1"
id="user_0001_setting_0002_value_1"
>
Habe ich
</label>
<label for="user_0001_setting_0002_value_2">
<input
name="user_0001_setting_0002"
type="radio"
value="2"
id="user_0001_setting_0002_value_2"
>
Will ich nicht
</label>
</dd>
</dl>
</form>
</fieldset>
Anstatt drei Radio-Buttons mit identischen name
-Attributewerten kannst Du auch sein <select>
verwenden. Ob das besser zu bedienen ist, kann ich nicht sagen. Auch weiß ich nicht, wie Du mit dem Fall "unbekannt" umgehen willst. In der DB wird dann als Wert sicherlich null
stehen. Das wäre dann auch zu setzen, wenn beim Speichern kein (passender) Wert ankommt. Willst Du das verhindern, wirst Du einem Radio-Button ein Attribut selected
mitgeben müssen, was im Zweifel aber nicht verlässlich ist.
Liebe Grüße
Felix Riesterer