Selectboxwert selectet

Fruitgum

Erfahrenes Mitglied
Hallo,

ich habe eine Selectbox mit mehreren Einträgen.

Kaffe
Tee
Milch
Kakao
Schnaps

User haben in ihren Profil eines der Einträge gespeichert. Nun möchte ich wenn die User ihr Profil aufrufen auch den Richtigen Eintrag, also der der bei ihnen gespeichert ist, auch als selected haben.

Jemand einen guten Tipp wie ich das anstellen darf.

Grüße
 
Grüße,
du speicherst das ausgewählte Element als String (sprich seinen Wert) in einer DB ab und wenn du die Seite aufrufst, dann lässt du eine Abfrage der DB laufen und setzt dann eines der Elemente per if-Verzweigung als selected.
 
Da ich nicht weiß wie du die Profildaten ausliest, hier mal eine ganz knappe Version:

PHP:
<select name="" size="3">
    <option value="1" <?php echo ($profilwert = "1") ? "selected" : ""; ?>>1</option>
    <option value="2" <?php echo ($profilwert = "2") ? "selected" : ""; ?>>2</option>
    <option value="3" <?php echo ($profilwert = "3") ? "selected" : ""; ?>>3</option>
</select>

Du musst für dich halt die Liste bzw. den Verlgeich mit $profilwert anpassen. Aber ansonsten sollte es so gehen.
 
1) gespeicherten Eintrag auslesen
2) Selectbox aufbauen und bei jedem Wert prüfen
3) den entsprechenden Option-Tag um selected erweitern

Wenn du Code willst, währe es gut zu sehen wie du die Box jetzt aufbaust
 
Moin moin,

ich verwende hier Smarty und habe das im Template so gemacht:

Code:
<select>{foreach from=$userDaten_titel item=userDaten_titelFor}
<option value="{$userDaten_titelFor->getField('ds_id')}" {if ($userDaten_titelFor->getField('ds_id') === $userDaten_titelsel) } selected {else} no {/if} >{$userDaten_titelFor->getField('titel')}</option>
{/foreach}
</select>

aber irgendwie soll da ein fehler im code sein?

ich wollte es gern mit IF lösen {if}{/if}
 
Keine Ahnung ob das jetzt so stimmt da ich mit dem Code nicht wirklich klar komme. Doch ich denke das es so klappt.

PHP:
<select>
{foreach from=$userDaten_titel item=userDaten_titelFor}
<option value="{$userDaten_titelFor->getField('ds_id')}" {($userDaten_titelFor->getField('ds_id') == $userDaten_titelsel) ? "selected" : ""} >{$userDaten_titelFor->getField('titel')}
</option>
{/foreach}
</select>

Im Grunde ist das auch eine IF-Anweisung, nur eben die Kurzform davon.
 
ja wie du hier schon siehst bleibt in der Value"" der code rot, und da ist ein Fehler, denn ich nicht verstehe. Ich denke aber das liegt am Smarty. Muss mal sehen wie ich das anders machen kann. Ich benutze hier als Datenbank Filemaker und leider kann ich da nicht so arbeiten wie mit mysql.
 
Zurück