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>
<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.
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>