webForumDet fria alternativet

selectboxar som följs åt

ASP

2 svar · 222 visningar · startad av JiBE

Medlem sedan okt. 20066 inlägg
Frågan#1

Jag har försökt göra en lösning där två selectboxar skall vara kopplade till varandra.

Selectbox 1 innehåller huvudkategorierna i ett menysystem. Om man gör ett val i selectbox 1, och den kategorin innehåller någon underkategori, så skall selectbox 2 visas, och lista rätt underkategorier. Så långt fungerar det också. Men, när jag gjort ett val i selectbox 1 så hoppar den tillbaka till "Välj kategori", jag vill ju självfallet att valet i föregående selectbox skall fortsätta visa det val man gjort.

Så jag tänkte att kanske fler ögon är bättre än mina två dåliga ögon.

	<form method="post" name="kategori">
		<strong>Kategori:</strong><br>
		<select name="kategoriID" style="font: 10px Verdana, Tahoma;width: 150px; margin: 0 0 10 0;" onchange=kategori.submit()>
		<%	Set RS = Conn.Execute("SELECT * FROM kategorier WHERE parentID = '0'")
			If RS.EOF Then
				Response.Write "<option><i>Inga kategorier ännu</i></option>"
			Else
				If Request.Form("kategoriID") = "" Then
					Response.Write "<option>Välj kategori</option>"
					Do Until RS.EOF %>
						<option value="<%=RS("kategoriID")%>"><%=RS("kategoriNamn")%></option>
<%					RS.MoveNext
					Loop
				Else
					Response.Write "<option>Välj kategori</option>"
					Do Until RS.EOF %>
						<option value="<%=RS("kategoriID")%>" <% If RS("kategoriID") = Request.Form("kategoriID") Then Response.write " selected"%>><%=RS("kategoriNamn")%></option>
<%					RS.MoveNext
					Loop
				End If
			End If 
			RS.Close %>
		</select>
	</form>
<%	If Request.Form("kategoriID") <> "" Then %> 
	<form method="post" name="underkategori">
	<%	Set RS = Conn.Execute("SELECT * FROM kategorier WHERE parentID = '" & Request.Form("kategoriID") & "'")
		If RS.EOF Then 

		Else %>
		<select name="underkategoriID" style="font: 10px Verdana, Tahoma;width: 150px; margin: 0 0 10 0;" onchange=underkategori.submit()>
<%			Response.Write "<option>Välj underkategori</option>"
			Do Until RS.EOF
				Response.Write "<option value="& RS("kategoriID") &">" & RS("kategoriNamn") & "</option>"
			RS.MoveNext
			Loop
		End If 
		RS.Close %>
		</select>
		<input type="hidden" name="kategoriID" value="<%=Request.Form("kategoriID") %>">
	</form>
<%	End If %>
		KategoriID = <%=Request.Form("kategoriID") & "<br>"%>
		UnderkategoriID = <%=Request.Form("underkategoriID") & "<br>"%>

Någon som hittar något fel? Eller kan komma med ett bättre sätt att lösa detta på.

Som sagt, det funkar, men det fungerar inte tillfredsställande :)

Värt att nämna är också att om jag exempelvis ändrar

<option value="<%=RS("kategoriID")%>" <% If RS("kategoriID") = Request.Form("kategoriID") Then Response.write " selected"%>><%=RS("kategoriNamn")%></option>

till

<option value="<%=RS("kategoriID")%>" <% If RS("kategoriID") = "3" Then Response.write " selected"%>><%=RS("kategoriNamn")%></option>

Så fungerar det med den kategori som har ID 3. Vilket jag även tycker ovanstående borde göra, eftersom

Response.Write Request.Form("kategoriID")

skriver ut det ID som valts

Medlem sedan feb. 20011 198 inlägg
#2

RS("kategoriID") är inte lika med Request.Form("kategoriID") eftersom de har olika datatyper.

Medlem sedan okt. 20066 inlägg
#3

Tänka sig :)

Då var det fixat, tackar för hjälpen.

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)