CatZMedlem sedan jan. 20022 440 inlägg Jag har två dropdown menyer efter varandra och undrar hur jag ändrar värdena i den andra när jag väljer ett i den första? Båda hämtar ju sina värden från databasen och två olika tabeller, jag är oerhört trött så det skulle inte förvåna mig om ni inte fattar ett smack! ;)
<select name="formAuthor">
<%
SQL = "SELECT AuthorName, AuthorID FROM tblAuthor ORDER BY AuthorName"
set objRS = objConn.Execute(SQL)
i = 1
Do While NOT objRS.EOF
if i = 3 then
i = 1
end if
strName = objRS("AuthorName")
intAuthorID = objRS("AuthorID")
Response.Write"<option value='"& intAuthorID &" class='tr" & i & "'>" & strName & "</option>"
i = i + 1
objRS.MoveNext
Loop
%>
</select>
<select name="formSeries">
<%
SQL = "SELECT SeriesID, SeriesTitle " _
& "FROM tblSeries " _
& "WHERE tblAuthorID = [b]VÄRDET FRÅN DEN FÖRSTA SELECTEN[/b]"_
& "ORDER BY SeriesTitle"
set objRS = objConn.Execute(SQL)
i = 1
Do While NOT objRS.EOF
if i = 3 then
i = 1
end if
strSeries = objRS("SeriesTitle")
strSeriesID = objRS("SeriesID")
Response.Write"<option value="& SeriesID &" class=tr" & i & ">" & SeriesTitle & "</option>"
i = i + 1
objRS.MoveNext
Loop
%>
</select>
Möjligt eller omöjligt? Javascript eller ASP? ;)
no problemos.
första selecten:
<select name="formAuthor" onChange="window.location.href='<%= Request.ServerVariables("SCRIPT_NAME") %>?AuthorID='+this[this.selectedIndex].value;">
i den andra:
AuthorID = trim(Request.Querystring("AuthorID"))
If len(AuthorID) >0 Then
SQL = "SELECT SeriesID, SeriesTitle " _
& "FROM tblSeries " _
& "WHERE tblAuthorID = " & AuthorID & _
& "ORDER BY SeriesTitle"
set objRS = objConn.Execute(SQL)
...
End If
CatZMedlem sedan jan. 20022 440 inlägg Då ser det ut såhär!
<select name="formAuthor" onChange="window.location.href='<%= Request.ServerVariables("SCRIPT_NAME") %>?intAuthorID='+this[this.selectedIndex].value;">
<%
SQL = "SELECT AuthorName, AuthorID FROM tblAuthor ORDER BY AuthorName"
set objRS = objConn.Execute(SQL)
i = 1
Do While NOT objRS.EOF
if i = 3 then
i = 1
end if
strName = objRS("AuthorName")
intAuthorID = objRS("AuthorID")
Response.Write"<option value="& intAuthorID &" class=tr" & i & ">" & strName & "</option>"
i = i + 1
objRS.MoveNext
Loop
%>
</select>
<select name="formSeries">
<%
intAuthorID = trim(Request.Querystring("intAuthorID"))
If len(intAuthorID) >0 Then
SQL = "SELECT SeriesID, SeriesTitle, AuthorID " _
& "FROM tblSeries " _
& "WHERE intAuthorID = " & intAuthorID & " "_
& "ORDER BY SeriesTitle"
set objRS = objConn.Execute(SQL)
End If
i = 1
Do While NOT objRS.EOF
if i = 3 then
i = 1
end if
strSeries = objRS("SeriesTitle")
intSeriesID = objRS("SeriesID")
Response.Write"<option value="& intSeriesID &" class=tr" & i & ">" & strSeriesTitle & "</option>"
i = i + 1
objRS2.MoveNext
Loop
%>
</select>
Får nu upp följande felmeddelande:
källkod skrev:
Microsoft JET Database Engine Error '80040e10'
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
Dessutom "stannar" ju inte värdet i den första ;)
nja, du missförstod mig lite med ifsatsen, jag kör in hela stycket vetja (med vissa tillägg): :)
<%
Dim AuthorID
AuthorID = trim(Request.Querystring("AuthorID"))
If len(AuthorID) >0 Then AuthorID = cint(AuthorID)
%>
<select name="formAuthor" onChange="window.location.href='<%= Request.ServerVariables("SCRIPT_NAME") %>?AuthorID='+this[this.selectedIndex].value;">
<%
SQL = "SELECT AuthorName, AuthorID FROM tblAuthor ORDER BY AuthorName"
set objRS = objConn.Execute(SQL)
i = 1
Do While NOT objRS.EOF
if i = 3 then
i = 1
end if
strName = objRS("AuthorName")
intAuthorID = objRS("AuthorID")
selected = ""
if intAuthorID = AuthorID Then selected = "selected"
Response.Write"<option value="& intAuthorID &" class=tr" & i & " " & selected & ">" & strName & "</option>"
i = i + 1
objRS.MoveNext
Loop
%>
</select>
<select name="formSeries">
<%
If len(AuthorID) >0 Then
SQL = "SELECT SeriesID, SeriesTitle, AuthorID " _
& "FROM tblSeries " _
& "WHERE intAuthorID = " & AuthorID & " "_
& "ORDER BY SeriesTitle"
set objRS = objConn.Execute(SQL)
i = 1
Do While NOT objRS.EOF
if i = 3 then
i = 1
end if
strSeries = objRS("SeriesTitle")
intSeriesID = objRS("SeriesID")
Response.Write"<option value="& intSeriesID &" class=tr" & i & ">" & strSeriesTitle & "</option>"
i = i + 1
objRS2.MoveNext
Loop
Else
Response.Write("<option value="""">Välj först Author!!!</option>" & vbCrlf)
End If
%>
</select>
CatZMedlem sedan jan. 20022 440 inlägg Jag ska kika på det omgående doggelito ;) Du vet jag har inte kodat nåt alls på flera år :) Är väldigt rostig
CatZMedlem sedan jan. 20022 440 inlägg Efter lite trixande fick jag ditt förslag att fungera klockrent doggelito!! Tack så mycket för hjälpen ;)
Nu återstår bara att analysera och förstå varför koden gör som den gör :bire
Va bra att det funkar (inte för att jag trodde nått annat men ;) )! :)
Fråga igen om du inte kommer på vad som gör vad i koden!
CatZMedlem sedan jan. 20022 440 inlägg Jag kom på ett härligt sätt att använda det som meny jisses vad kul man kan ha med lite ny kod :D