Hej,
Jag har tre dropdown menyer som alla hämtar världen från en SQL-db. Alla menyer är beroende av varandra, så när man valt i den första menyn så ska nästa aktiveras och visa information beroende på vad man valt. Det känns som om det är en simpel grej att göra men det står helt stil i huvudet... Jag har fått in information i den första menyn, och när man gjort sitt val är det meningen att sidan ska laddas om på nytt och ta fram värden i den andra menyn. Jag har provat med onchange, men nu laddar sidan om men den behåller inte det värdet som jag valt... Kan någon ge mig en hint på hur jag gör det här?
<SELECT onchange="location.href='statestik.asp?frmSchool='+this[this.selectedIndex].value"
StevePMedlem sedan mars 2003772 inlägg Detta passar bättre i Javascript forumet.
Någon moderator lär flytta tråden dit.
Ja jag misstänker det, men var inte helt säker eftersom jag sitter med både asp och sql....
@ndersMedlem sedan juni 200032 969 inlägg Det här borde funka:
<SELECT onchange="location.href='statestik.asp?frmSchool='+[b]this.options[/b][this.selectedIndex].value;">
mvh
Nej det gjorde inte det, det bara "blinkar" till så blir den tom igen.
@ndersMedlem sedan juni 200032 969 inlägg Följer inte rätt värde med i querystringen?
Du måste sedan ha en if-sats i asp-koden som markerar det värdet igen, det sker inte automatiskt.
red: jag kan förstås ha läst dåligt, skall läsa igen, snart. ;)
Mvh
Nej då det är inte du som har läst dåligt, det är jag som inte är helt med här i världen... men det är ju så det är när man inte kan asp på sina fem fingrar... ;)
@ndersMedlem sedan juni 200032 969 inlägg Har du kommit vidare?
Behöver du mer hjälp, i så fall släng upp all möjlig relevant information. :)
Mvh
Njae både och, nu har jag börjat om från början, hittade ett exempel med en javascript funktion men får inte den att fungera helt heller. I det exemplet kör dom med frames men det gör inte jag så jag håller på att försöka förstå vad som är vad.
<script language="javascript">
function HandleChange() {
parent.frmListBox2.document.location.href="statestik.asp?StateValue=" + document.forms[0].selState.value;
}
</script>
<form action="statestik.asp" method="get">
<SELECT onchange="HandleChange()" id="ar" name="Aret">
<OPTION selected>
<%
Do While Not objRS.EOF
Response.Write("<OPTION value>" & objRS("Ar")&"</OPTION value>")
objRS.MoveNext
Loop
%>
</OPTION></SELECT>
Det här är jag har problem hur jag ska hämta in info till nästa dropdown...
<SELECT id="avdelning" name="Avdelning">
<OPTION selected>
<%
'Dim arTal
'arTal = Request.Form("Aret")
'If arTal = objRS("arID")=1 Then
Dim strState
strState = Request.QueryString("StateValue")
'if strState = "" then strState = "IL"
Do While Not objRS.EOF
Response.Write"<Option value>" & objRS("ar2003")
objRS.MoveNext
Loop
'End if
%>
</OPTION></SELECT>
@ndersMedlem sedan juni 200032 969 inlägg Jag vet inte om det är så lyckat att ha olika name och id på dina input-element.
När man väljer i den första dropdownmenyn ska alltså sidan läsas om med det valda i querystringen? Vad ska göras med detta värda på nästa sida?
Vad är det tänkt att den andra dropdownmenyn ska innehålla? Vad skall väljas per default?
Det som ska hända är att man ska välja ett årtal i den första menyn och beroende på vad man väljer ska den andra menyen fyllas med värden som jag ska hämta in från en SQL-db.
@ndersMedlem sedan juni 200032 969 inlägg Jag är fortfarande inte helt med på vad du vill göra, så, here goes nothing:
- - - - -
Vi utgår ifrån att din sida heter statestik.asp.
Ändrar man markeringen i selectboxen skall sidan läsas om, och värdet skall användas för att hämta något annat odefinierat och visa i en annan selectbox?
<%
strAr = Request.Querystring("aret")
strSomething = Request.Querystring("något_annat")
'
' Här har du koden som fyller recordsetet objRS
%>
<form action="statestik.asp" method="get">
<SELECT onchange="location.href='statestik.asp?aret='+this.options[this.selectedIndex].value;">
<option>välj!</option>
<%
Do While Not objRS.EOF
%>
<OPTION value="<%= objRS("Ar") %>" <% if cstr(objRS("Ar")) = strAr then Response.write "SELECTED" %>><%= objRS("Ar") %></OPTION>
<%
objRS.MoveNext
Loop
%>
</SELECT>
</form>
<%
if strAr <> "" then
' Här fyller du ditt andra recordset beroende på vad som kom från den första selectboxen:
strSQL = "SELECT * FROM någon_tabell WHERE Ar = " & strAr
' öppna, osv, fyll upp objRS
<form action="statestik.asp" method="get">
<SELECT onchange="location.href='statestik.asp?aret=<%=strAr%>&något_annat='+this.options[this.selectedIndex].value;">
<option>välj!</option>
<%
Do While Not objRS.EOF
%>
<OPTION value="<%= objRS("Något_fält") %>" <% if cstr(objRS("Något_fält")) = strSomething then Response.write "SELECTED" %>><%= objRS("Något_fält") %></OPTION>
<%
objRS.MoveNext
Loop
%>
</SELECT>
</form>
<%
end if
%>
Allt det här är givetvis extremt otestat.
mvh