webForumDet fria alternativet

Förlorar värde efter redirect?

5 svar · 353 visningar · startad av Frexuz

FrexuzMedlem sedan maj 2003138 inlägg
#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
			%>
logicMedlem 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!

FrexuzMedlem 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 ?

@ndersMedlem sedan juni 200032 969 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? :)

FrexuzMedlem sedan maj 2003138 inlägg
#5

tips på kod? :S

@ndersMedlem sedan juni 200032 969 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.

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