WinFuture-Forum.de: [php & Mysql] Dropdown-menü Mit Festgelegten Werten Aus Datenbank? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[php & Mysql] Dropdown-menü Mit Festgelegten Werten Aus Datenbank?


#1 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 09. Februar 2009 - 13:35

Hi,

ich bin im Moment dabei eine Adressdatenbank umzubauen und muss dort zusätzliche Felder einbauen. Ich habe in der bestehenden Datenbank bereits ein Feld für das Geschlecht eingetragen und auch in jedem einzelnen Datensatz (sind bisher nur 5 Testdatensätze) richtig gesetzt.

Nun möchte ich aber, dass man das Gechlecht auch beim eintragen eines neuen Datensatzes über das Web-Frontend setzen kann. Dafür möchte ich ein Dropdown-Menü haben.

Das Dropdown-Menü soll folgende Einträge beinhalten:
""
"Männlich"
"Weiblich"
(Also einen leeren Eintrag für "nicht gesetzt")

In der Datenbank sollen diese Einträge als "m", "f" oder eben leer gespeichert werden.

Das bedeutet es muss (da die gleiche Seite wie zum Eintragen auch zum Editieren von Datensätzen verwendet wird) als erstes ausgelesen Werden was in dem entsprechenden Datensatz drinsteht und der entsprechend übersetzt Eintrag (m=>Männlich, f=>Weiblich) im Dropdown-Menü ausgewählt werden. Wenn es ein neuer Datensatz ist oder das Feld leer ist soll entsprechend der Standardeintrag "" gewählt werden.

Beim absenden des Formulars soll ensprechend die Auswahl des Dropdown-Menü "zurückübersetzt" (Männlich=>m, Weiblich=>f) und eingetragen werden.

Nun habe ich sowas noch nie gemacht (also ein Dropdown-Menü mit variablem Datensatz dahinter) und bräuchte mal ein paar Ratschläge wie ich das am besten angehe.

Viele Grüße,
skaven
Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 09. Februar 2009 - 15:37

Hier eine von vielen eleganten Möglichkeiten:

Beim Erstellen des Dropdownmenüs gibst du ihm eine Liste der Einträge und den zu setzenden Eintrag:
new DropDown(wert, listeVonEinträgen);

Beim Eintragen eines neuen Datensatzes ist wert "" und beim Bearbeiten bpsw "m"
HTML-Seitig würde die Ausgabe dann wie folgt aussehen.
Beim Neuanlegen:
<select name="sex">
<option selected="selected" value="">Bitte auswählen</option>
<option value="m">Männlich</option>
<option value="w">Weiblich</option>
</select>

Beim Editieren:
<select name="sex">
<option value="m">Männlich</option>
<option selected="selected" value="w">Weiblich</option>
</select>

Für das Mapping (von m wird Männlich) hast du nun verschiedene Möglichkeiten.
Ich erkläre das mal an Hand der Lokalisierungsfunktion eines Web-Frameworks mit dem ich aktuell arbeite. Das arbeitet mit Sprachdateien, für jede Sprache _kann_ es eine eigene Datei geben. index_en.conf, index_de.conf, index_fr.conf usw.. Kann, da mit index.conf ein Fallback existiert. Die Dateien sind dann simple Key-Value Dateien:
index.conf (Standardmäßig deutsch)
m = Männlich
w = Weiblich

index_en.conf
m = Male
w = Female

Nun kannst du dir eine einfache Methode striken, die dir an Hand des Keys (m) den Value (männlich) zurückgibt, welchen du dann in dein Template (oder wie auch immer du deinen HTML-Code erstellst) einsetzt.

Die Arbeit mit Dateien ist natürlich eine von vielen Arten ein elegantes Mapping umzusetzen.
Falls dir das viel zu aufwendig ist, kannst du die unelegantere Art wählen und das Mapping direkt im Code bspw über eine Map (in PHP ein einfaches Array) lösen.
0

#3 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 09. Februar 2009 - 16:12

Hm, ja stimmt. Sprachdateien habe ich da auch bei und da habe ich sogar ein Array dafür eingetragen, fällt mir grad' ein. Ich werde das morgen mal probieren. Danke erstmal.
Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0