You can't rely on the back button maintaining form state. The back button
belongs to the browser, and as such is outside of the control of an asp
developer.
Personally, I get pages to post to themselves in the vast majority of cases.
I usually do this kind of thing:
<%
Sub ShowForm
%>
<form method="post" action="">
<p>Enter First name: <input type="text" name="FirstName"
value="<%=Request.form("FirstName")%>"></p>
<p>Enter Second name: <input type="text" name="SecondName"
value="<%=Request.Fom("SecondName")%>"></p>
<p><input type="submit" name="submit" value="Click Me"></p>
<%
End Sub
If Not IsEmpty(Request.Form("submit")) Then
'Form posted
'validate values
'if validation fails, show form
Call ShowForm
Else
Success
Else
Call ShowForm
End If
%>
But of course, some forms need more than one page. If you think that using
session variables will be too much for your environment, you can use a
database, text files, hidden fields etc.
--
Mike Brind
--
Mike Brind
"Rolf Rosenquist" <ro**@nomail.comwrote in message
news:u6****************@TK2MSFTNGP04.phx.gbl...
Mike, do you mean that I should then repopulate the form from the
Session(x)
if I come back to the first page?
Isn't it too much waste of server memory to use session variables for
normal
data between pages?
If someone uses the back button in the browser, all the fields are still
there. Couldn't I do the same thing with asp code?
/ Rolf
"Mike Brind" <pa*******@hotmail.comskrev i meddelandet
news:Oi*************@TK2MSFTNGP05.phx.gbl...
>>
"Rolf Rosenquist" <ro**@nomail.comwrote in message
news:Ob*************@TK2MSFTNGP02.phx.gbl...
From a page with a form I collect the fields in the next page. The
fields
are compared with a database and if a certain condition does not fit, I
want
to go back to the first page with the form, and still keep all the
other
fields as they were written.
If I use Response.Redirect the form will be loaded empty again. The
same
if
I use a button on page 2 with onClick="history.Back". Isn't there a way
to
go back and keep the already written fields in the form on the first
page,
as if the user just had hit the Back icon in IE?
There are a number of ways to do this. Here's one that will cope with
the
fact that one page posts to another.
ExampleForm.asp
<form method="post" action="Action.asp">
<p>Enter First name: <input type="text" name="FirstName"
value="<%=Session("FirstName")%>"></p>
<p>Enter Second name: <input type="text" name="SecondName"
value="<%=Session("SecondName")%>"></p>
<p><input type="submit" name="submit" value="Click Me"></p>
Action.asp
<%
Dim x, boolValid
For Each x in Request.Form
Session(x) = Request.Form(x)
Next
boolValid = True
'Validate form values
If 'any test fails Then
boolValid=false
End If
If boolValid = false Then Response.Redirect("ExampleForm.asp")
%>
--
Mike Brind