webForumDet fria alternativet

Query.String/Select

6 svar · 226 visningar · startad av SannyW

SannyWMedlem sedan jan. 2003438 inlägg
#1

Ja, vad jag har försökt att göra är att har två stycken select-boxar där man kan välja a:1-10 i den ena och b:1-10 i den andra.

När man väljer i A, t ex 1 skall sidan skriva innehållet som stämmer överrens med valet 1.

Vad som nu händer är att den ena fungerar bara, alltså antingen A eller B (Alla 1-10 fungerar). Det beror på vilken som ligger först.
Men funkar a:1-10 så funkar inte b alls.

Och skriver man bara path=a eller path=b så fungerar dem funktionerna som de skall. Men inte när man blandar in 1-10.

Hoppas någon kan förstå vad jag precis har skrivit. Har snurrat till det nu så jag hittar inte lösningen. Är tacksam för synpunkter om koden.

Tack på förhand.

<FORM NAME=""><SELECT valign="middle" NAME="snabbval" SIZE="1" onChange="update_frames(this.form);">
<OPTION VALUE="" SELECTED>Välj</OPTION>
<OPTION>-------------------------</OPTION>
<OPTION VALUE="default.asp?path=a&lag=1">A</OPTION>
</SELECT></FORM>

<FORM NAME=""><SELECT valign="middle" NAME="snabbval" SIZE="1" onChange="update_frames(this.form);">
<OPTION VALUE="" SELECTED>Välj</OPTION>
<OPTION VALUE="default.asp?path=b&lag=1"></a>B</OPTION>
</SELECT>
</FORM>

<%
IF Request.QueryString = "path=a" THEN%>

<%
				Set Connect = Server.CreateObject("ADODB.Connection") 
				Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/db.mdb")&";"

				Set RecSet = Server.CreateObject("ADODB.Recordset")

				SQL = "SELECT * FROM table_a ORDER BY ID ASC"
				RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
				

  

				  
				  DO UNTIL RecSet.EOF
				  %>
<%=RecSet("namn")%><% RecSet.MOVENEXT %>

  <%
				  X=X+1
				  
				  LOOP						
				  
				RecSet.CLOSE
				Connect.CLOSE
				Set RecSet = nothing
				Set Connect = nothing
				%>

<%else 

	strLag = request.querystring("lag")
	If strLag = "" then
  		sortera = "ID"
	else
  		sortera = strLag
	END IF

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../db/db.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")

   
   Visa = "SELECT * FROM table_a WHERE n1 = '" & sortera1 & "' OR n2 = '" & sortera1 & "' ORDER BY ID ASC"
   RecSet.Open Visa, Connect, 3, 3  

END IF%>

<%
IF Request.QueryString = "path=b" THEN%>

<%
				Set Connect = Server.CreateObject("ADODB.Connection") 
				Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/db.mdb")&";"

				Set RecSet = Server.CreateObject("ADODB.Recordset")

				SQL = "SELECT * FROM table_b ORDER BY ID ASC"
				RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
				

  

				  
				  DO UNTIL RecSet.EOF
				  %>
<%=RecSet("Namn")%><% RecSet.MOVENEXT %>

  <%
				  X=X+1
				  
				  LOOP						
				  
				RecSet.CLOSE
				Connect.CLOSE
				Set RecSet = nothing
				Set Connect = nothing
				%>
<%else 

	strLag = request.querystring("lag")
	If strLag = "" then
  		sortera = "ID"
	else
  		sortera = strLag
	END IF

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../db/db.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")

   
   Visa = "SELECT * FROM table_b WHERE n1 = '" & sortera1 & "' OR n2 = '" & sortera1 & "' ORDER BY ID ASC"
   RecSet.Open Visa, Connect, 3, 3 
 
END IF%>

<% IF NOT RecSet.EOF or NOT RecSet.BOF THEN%>

<TR><TD COLSPAN="7"><font size="2"><b><%response.write request.querystring("lag")%></b></font></TR></TD>
<%Else%>

<%End IF %>

		
<%Do Until RecSet.EOF %>

<%=RecSet("n1")%>-<%=RecSet("n2")%>

<% 
	RecSet.MoveNext
	Loop
	RecSet.Close %>
m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Jag tror att saken kan fixas med Javascript, men jag kan tyvärr inte Javascript så bra. :l
https://www.pellesoft.nu har bland annat sådana "dropdownboxar" som du pratar om.

SannyWMedlem sedan jan. 2003438 inlägg
#3

Det hade i och för sig kunnat funka kanske, men skulle gärna vilja komma fram till vad jag gjort för fel i koden.

Någonstans har min tanke varit fel, det funkar att söka efter ena data. Men inte det andra...........

tror det sitter i <%ELSE OCH

strLag = request.querystring("lag")
If strLag = "" then
sortera = "ID"
else
sortera = strLag
END IF

SannyWMedlem sedan jan. 2003438 inlägg
#4

Ingen som har några idéer om vad som är fel??

Nedan följer vad som skall styra vilken databas som laddas. Samma text finns på två ställen, men med olika tabeller som styr vad som skall skrivas ut.

<%else 

	strLag = request.querystring("lag")
	If strLag = "" then
  		sortera = "ID"
	else
  		sortera = strLag
	END IF

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../db/db.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")

   
   Visa = "SELECT * FROM table_a WHERE n1 = '" & sortera1 & "' OR n2 = '" & sortera1 & "' ORDER BY ID ASC"
   RecSet.Open Visa, Connect, 3, 3  

END IF%>
hammersMedlem sedan juli 2000112 inlägg
#5
strLag = request.querystring("lag")
	If strLag = "" then
  		sortera = "ID"
	else
  		sortera = strLag
	END IF
Visa = "SELECT * FROM table_a WHERE n1 = '" & sortera1 & "' OR n2 = '" & sortera1 & "' ORDER BY ID ASC"

Jag kan vara ute på en cykeltur här, men borde det inte stå sortera istället för sortera1 på den sista raden??

SannyWMedlem sedan jan. 2003438 inlägg
#6

Jo, helt klart.

Men jag har försökt att dela upp dem två med olika sökningarna, fram och tillbaka utan att hitta rätt. Därför missade jag att ta bort 1:an när jag raderade bort en massa onödigt.

Uppskattar ditt svar ändå!! :)

solbulleMedlem sedan mars 20015 287 inlägg
#7

Spontant ser jag inte hur det där ska kunna fungera, när den andra ändringen sker skrivs ju det första över. Du måste på något sätt "få med dig" det första resultatet i den andra ändringen...
*funderar*
I övrigt verkar det även vara lite dubbelt av en del kod.

Sen ska du väl iofs kolla din querystring så här:

IF Request.QueryString("path") = "b" THEN
132 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)