webForumDet fria alternativet

Förlorar värde efter redirect?

ASP

5 svar · 355 visningar · startad av Frexuz

Medlem sedan maj 2003138 inlägg
Frågan#1

varför förlorar jag värde på 'r' och 'f' när jag kommer till 'p=test&del=3' ?

om jag kör response.write på 'r' och 'f' , på samma ställe där response.redirect är, så funkar det

(jag vill ha en extra redirect pga att slippa få rutan [vill du verkligen skicka formuläret? försök igen/avbryt] om man trycker F5)

			<form name="form" method="post" action="default.asp?p=test&del=2">
            Fr&aring;gor <br>
            <input type="radio" name="radio1" value="1">
            <br>
            <input type="radio" name="radio1" value="2">
            <br>
            <br>
            Fr&aring;gor<br>
            <input type="radio" name="radio2" value="1">
            <br>
            <input type="radio" name="radio2" value="2">
            <br>
            <br>
			<input type="submit" name="Submit" value="Submit" class="button">
			</form>
			<%
			if request.querystring("del") = "2" then

				r = 0
				f = 0
				
				if request.form("radio1") = "1" then
					r = r + 1
				else
					f = f + 1
				end if
				if request.form("radio2") = "1" then
					r = r + 1
				else
					f = f + 1
				end if
				response.redirect "?p=test&del=3"

			elseif request.querystring("del") = "3" then
			
				response.write "r&auml;tt " & r
				response.write "<br>"
				response.write "fel " & f
				
			end if
			%>
Medlem sedan maj 200481 inlägg
#2

Har du testat att deklarera siffrorna som tal? Dvs skriva Int r, f först. De kan ju tro att det är en sträng och isåfall går det inget vidare att plussa på ett ord med en siffra :)

EDIT: Int ska det vara! :r

EDIT2: Såg att du hade flera fel där!

Sätt
r = 0
f = 0

innan if-satserna, annars blir de bara talet 0 när del = 2!

Medlem sedan maj 2003138 inlägg
#3
<%
if request.querystring("del") = "2" then

	r = 0
	f = 0
	if request.form("radio1") = "1" then
		r = r + 1
	else
		f = f + 1
	end if
	if request.form("radio2") = "1" then
		r = r + 1
	else
		f = f + 1
	end if
	response.write "r&auml;tt " & r
	response.write "<br>"
	response.write "fel " & f
				
end if
%>

men detta funkar ju ?

Medlem sedan juni 200032 967 inlägg
#4

Frexuz skrev:

varför förlorar jag värde på 'r' och 'f' när jag kommer till 'p=test&del=3' ?

om jag kör response.write på 'r' och 'f' , på samma ställe där response.redirect är, så funkar det

Tja, det är så det fungerar. Ska du hämta värdena på en annan sida än den de skickas till så måste du på något sätt skicka vidare värdena till sidan som ska hantera dem.

Har du testat att deklarera siffrorna som tal? Dvs skriva Int r, f först.

I VBScript kan man inte typa variabler på det sättet. Och hur skulle det avhjälpa problemet? :)

Medlem sedan maj 2003138 inlägg
#5

tips på kod? :S

Medlem sedan juni 200032 967 inlägg
#6
response.redirect "?p=test&del=3&r=" & r & "&f=" & f

till exempel...

Annars kan du ju lagra värdena i sessionsvariabler så du slipper skicka iväg dem i querystring.

273 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)