Stefan Falz: Brauche Hilfe zu Dynamischem Suchformular mit Werten aus DB

Beitrag lesen

Jetzt mein Problem:
Wie bekomme ich es hin daß die Werte die vor dem senden des Formulars ausgewählt oder angeklickt waren wieder genauso angeklickt sind nachdem die 2 Auswahlliste aufgefüllt wurde und an den Client gesendet wurde.

Ich habe schon versucht das komplette Formular einfach nochmal dynamisch zu erstellen(obwohl eigentlich nur 1 Auswahlliste erweitert werden müßte) also alle Inhalte der Formularelemente aus der DB zu lesen un dann abzufragen welche werte aus dem Formular kommen und bei Übereinstimmung diese zu selektieren(<option selected> etc..).Das hat auch funktioniert aber es hat so lange gebraucht daß ich unbedingt eine andere Lösung brauche.

Hallo,

also der Weg, den du eingeschlagen hast, ist eigentlich der richtige.
Da du sagst, das alles etwas lange dauert, gehe ich eher davon aus,
daß der ASP-Code optimiert werden sollte. Hierfür wäre ein Ausschnitt
aus deinem Code sehr hilfreich.

Eine andere Möglichkeit ist, die Listboxen in einer Include-Datei zuerstellen,
und die Inhalte dann mit dem gesendeten Wert zu vergleichen, ohne
die Listbox selbst aus der Datenbank zu generieren. Ist aber nicht so
toll.

<!--#include file="select1.inc" //-->

Inhalt der Datei select1.inc
' ------------------------------------------------------------------
<select name="Liste1">
   <option <% If Request("Liste1") = "Option1" Then %>selected<% End if %> value="Option1">Option1
   <option <% If Request("Liste1") = "Option2" Then %>selected<% End if %> value="Option2">Option2
   ...
</select>
' ------------------------------------------------------------------

Eine andere Möglichkeit wäre, die Listenelemente in einem Array zu deklarieren
und die Listbox dann in einer Schleife zu erstellen und auf den übergebenen Wert zu prüfen.
<%
Dim aryList1(10)
    aryList(0) = "Option1"
    aryList(1) = "Option2"
    ...

Response.Write "<select name=""Liste1"">"
For intCounter = LBound(aryList1) To UBound(aryList1)
   If Request("Liste1") = aryList1(intCounter) Then
      strSelected = " selected"
   Else
      strSelected = ""
   End if
   Response.Write "<option " & strSelected & " value=""" & aryList1(intCounter) & """>" & aryList1(intCounter)
Next
Response.Write "</select>"
%>

Ich hoffe, dir damit geholfen zu haben.

Tschau, Stefan