webForumDet fria alternativet

Uppdatera vid SELECT

ASPur ASP

7 svar · 260 visningar · startad av CatZ

CatZMedlem sedan jan. 20022 440 inlägg
#1

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? ;)

doggelitoMedlem sedan juni 20003 076 inlägg
#2

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
#3

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 ;)

doggelitoMedlem sedan juni 20003 076 inlägg
#4

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
#5

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
#6

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

doggelitoMedlem sedan juni 20003 076 inlägg
#7

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
#8

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

132 ms totalt · 3 externa anrop · v20260731065814-full.94fcd635
129 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)