Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > Go back w/o loading the form?

Reply
Thread Tools

Go back w/o loading the form?

 
 
Rolf Rosenquist
Guest
Posts: n/a
 
      02-13-2007
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?

/ Rolf


 
Reply With Quote
 
 
 
 
Mike Brind
Guest
Posts: n/a
 
      02-13-2007

"Rolf Rosenquist" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> 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


 
Reply With Quote
 
 
 
 
Rolf Rosenquist
Guest
Posts: n/a
 
      02-13-2007
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" <(E-Mail Removed)> skrev i meddelandet
news:(E-Mail Removed)...
>
> "Rolf Rosenquist" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > 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
>
>



 
Reply With Quote
 
Mike Brind
Guest
Posts: n/a
 
      02-14-2007
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" <(E-Mail Removed)> wrote in message
news:u6h1n%(E-Mail Removed)...
> 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" <(E-Mail Removed)> skrev i meddelandet
> news:(E-Mail Removed)...
>>
>> "Rolf Rosenquist" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>> > 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
>>
>>

>
>



 
Reply With Quote
 
Rolf Rosenquist
Guest
Posts: n/a
 
      02-15-2007
Yes it works now with hidden fields, but I have found it is necessary to use
a submit button to get them back to page1. They do not appear, when I try to
do it in the background with Response.Redirect "page1,asp"

Is there a way to catch the hidden fields without a button?
/ Rolf




"Mike Brind" <(E-Mail Removed)> skrev i meddelandet
news:%(E-Mail Removed)...
> 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" <(E-Mail Removed)> wrote in message
> news:u6h1n%(E-Mail Removed)...
> > 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" <(E-Mail Removed)> skrev i meddelandet
> > news:(E-Mail Removed)...
> >>
> >> "Rolf Rosenquist" <(E-Mail Removed)> wrote in message
> >> news:(E-Mail Removed)...
> >> > 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
> >>
> >>

> >
> >

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
order of iframe loading with document loading ofir Javascript 0 12-03-2007 12:06 PM
loading image -> detect when image is done loading edfialk Javascript 0 05-10-2007 07:28 PM
[OT] Is loading the second Java application faster than loading the first? David Segall Java 2 01-02-2007 04:41 PM
Image loading using javascript. Handling timeouts and parrallel loading under IE zborisau@gmail.com Javascript 4 08-28-2005 02:02 PM
Back button not working when loading a new document at the same URL Ivan K ASP .Net 0 04-28-2004 10:24 AM



Advertisments