Select Case verkürzen?

schutzgeist

Erfahrenes Mitglied
Morgen zusammen :)

Ich hab einer Datei, Colors.inc, verschiedene Farbnamen gespeichert. Diese bind ich dann in ein Auswahlfeld ein, welches mir den gewählten Wert dann in die DB schreibt.
Ich hab für mehrere Eigenschaften ein und die selbe Datei eingebunden.

Auf der Ausgabeseite ruf ich dann eben die verschiedenen Farben jeweils ab.
z.b. hab ich <%=sitecolor%>, <%=bgcoler%> usw.
Sinn und Zweck des Ganzen ist es, die Farben/Eigenschaften nachher in den CSS einzubinden.
Nun muss ich aber für jede Eigenschaft ne ewig lange Select Case Anweisung schreiben, was auf Dauer ziemlich nervig ist, da noch einige Farben/Eigenschaften dazu kommen sollen.
Mein bisheriger Code dafür sieht momentan so aus:
Code:
select case sitecolor
	case "violett"
	site_bgcolor = "#6600FF"
	case "weiss"
	site_bgcolor = "#FFFFFF"
	case "schwarz"
	site_bgcolor = "#000000"
	case "hellrot"
	site_bgcolor = "#FF6666"
	case "dunkelgrau"
	site_bgcolor = "#666666"
	case "hellblau"
	site_bgcolor = "#99CCFF"
	case "magenta"
	site_bgcolor = "#663366"
	case "dunkelrot"
	site_bgcolor = "#990000"
	case "dunkelblau"
	site_bgcolor = "#000066"
	case "hellgruen"
	site_bgcolor = "#99FF66"
	case "dunkelgruen"
	site_bgcolor = "#336633"
	case "gelb"
	site_bgcolor = "#FFFF66"
	case "limette"
	site_bgcolor = "#DDFF78"
	case "brown"
	site_bgcolor = "#804000"
	case "stahlblau"
	site_bgcolor = "#336699"
	case "purple"
	site_bgcolor = "#660099"
	case "orange"
	site_bgcolor = "#FF9900"
	case "pink"
	site_bgcolor = "#FF66CC"
	case else
	site_bgcolor = "#FFFFFF"
end select
select case navibg
	case "violett"
	navibgcolor = "#6600FF"
	case "weiss"
	navibgcolor = "#FFFFFF"
	case "schwarz"
	navibgcolor = "#000000"
	case "hellrot"
	navibgcolor = "#FF6666"
	case "dunkelgrau"
	navibgcolor = "#666666"
	case "hellblau"
	navibgcolor = "#99CCFF"
	case "magenta"
	navibgcolor = "#663366"
	case "dunkelrot"
	navibgcolor = "#990000"
	case "dunkelblau"
	navibgcolor = "#000066"
	case "hellgruen"
	navibgcolor = "#99FF66"
	case "dunkelgruen"
	navibgcolor = "#336633"
	case "gelb"
	navibgcolor = "#FFFF66"
	case "limette"
	navibgcolor = "#DDFF78"
	case "brown"
	navibgcolor = "#804000"
	case "stahlblau"
	navibgcolor = "#336699"
	case "purple"
	navibgcolor = "#660099"
	case "orange"
	navibgcolor = "#FF9900"
	case "pink"
	navibgcolor = "#FF66CC"
	case else
	navibgcolor = "#FFFFFF"
end select
select case menutitlecolor
	case "violett"
	menutitlecolor_ = "#6600FF"
	case "weiss"
	menutitlecolor_ = "#FFFFFF"
	case "schwarz"
	menutitlecolor_ = "#000000"
	case "hellrot"
	menutitlecolor_ = "#FF6666"
	case "dunkelgrau"
	menutitlecolor_ = "#666666"
	case "hellblau"
	menutitlecolor_ = "#99CCFF"
	case "magenta"
	menutitlecolor_ = "#663366"
	case "dunkelrot"
	menutitlecolor_ = "#990000"
	case "dunkelblau"
	menutitlecolor_ = "#000066"
	case "hellgruen"
	menutitlecolor_ = "#99FF66"
	case "dunkelgruen"
	menutitlecolor_ = "#336633"
	case "gelb"
	menutitlecolor_ = "#FFFF66"
	case "limette"
	menutitlecolor_ = "#DDFF78"
	case "brown"
	menutitlecolor_ = "#804000"
	case "stahlblau"
	menutitlecolor_ = "#336699"
	case "purple"
	menutitlecolor_ = "#660099"
	case "orange"
	menutitlecolor_ = "#FF9900"
	case "pink"
	menutitlecolor_ = "#FF66CC"
	case else
	menutitlecolor_ = "#FFFFFF"
end select

[...]

Also ziemlich viel Code für ein und das selbe.
Es muss doch irgendwie die Möglichkeit geben, das ganze eleganter zusammenzusfassen?
Habs jetzt zwar mal in der .inc auf <option value='#farbe'>text</option> umgeschrieben.. trotzdem würds mich intressieren :-)

Danke schonmal im vorraus.
 
Gute Frage :suspekt:
Das ganze ist ein kleines CMS das ich mir runtergeladen hab und an dem ich jetzt seit ca. 10 Tagen rumschraub, um das ein oder andere auszuprobieren und natürlich zu lernen :-)
Tabelle wohl nicht, da dieses Select Case schon da war und ich eben mal drauf los angefangen hab zu erweitern :rolleyes:
Wenn ichs mit ner Tabelle probier, muss ich mir erst mal nen gedanklichen 'Schlachtplan' erstellen, wo ich überhaupt anfang, da mittlerweile doch einiges an Zeug dazugekommen ist :-)
Aber nochmal zurück zur Frage:
Ist es überhaupt möglich, das Select Case zusammenzukürzen?

Danke :)
 
Hi

schreiben musst Du die Sachen, ob jetzt in eine Tabelle, in eine Textdatei, in einen Array oder in eine select case Anweisung. Zum ändern, anlegen und Löschen der ganzen Geschichte ist eine Tabelle am einfachsten.

Bin allerdings jetzt noch nicht richtig dahintergestiegen, was Du damit machen möchtest. Verstanden habe ich nur, dass Du die Daten in ein Select menü laden und einen Wert in der DB abspeichern willst.
 
Ich hab eine Seite, die Settings heißt.
In der kann ich angeben, welche Farbe z.b. mein Hintergrund haben soll.
Dafür hab ich dann die colors.inc eingebunden, die mir dann in einem Drop down verschiedene Farben 'anbietet'
<option>weiß</option>
<option>blau</option>
usw.
Die inc bind ich für verschiedene Sachen ein. Textfarbe, etc.
Die ausgewählte Farbe wird dann in eine Tabelle gespeichert.

Dann hab ich eine Datei header.asp in der ich den CSS Code einbind.
z.b.
body {
color: <=%bodycolor%>;
}

Wenn ich die Farben jetzt nicht in das Select Case schreibe, setzt er mir ja dann statt z.B. #FFFFFF einfach 'weiß' in den CSS ein.
Und das will ich ja nicht.
Darum sag ich im Select Case weiß = #FFFFFF usw.

Da ich das jetzt dann aber für etliche Farbzuweisungen machen muss, ergibt sich daraus, wie oben gepostet, diese ewig lange Liste.
 

Neue Beiträge

Zurück