You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Ashok Venkat <as...@yahoo.com> on 2007/10/26 04:49:42 UTC

Hidden form fields not found in request

Hello, 

In the below code, i am submitting a form to itself  in the onload method and changing some hidden form field values. After the form is submitted, the hidden values are not available in the request object.As a result, the page gets into an endless loop. 
 
Thanks for any help

Code: 

//test.jsp

if(request.getParameter( "ScreenResolutionHeight" ) == null )
{
%>
<html>
<head>
<title>Please wait one moment...</title>
</head>
<body onload='SubmitOnLoad();'>

<form method='post' id='ScreenResolutionForm'>
<input type='hidden' name='ScreenResolutionWidth' value='1024'>
<input type='hidden' name='ScreenResolutionHeight' value='768'>

<script>
function SubmitOnLoad()
{
var this_form = FindElementById( 'ScreenResolutionForm' );
this_form.ScreenResolutionWidth.value = window.screen.availWidth;
this_form.ScreenResolutionHeight.value = window.screen.availHeight;
this_form.BrowserType.value = navigator.appName;


this_form.submit();
}

function FindElementById( id )
{
if( document.getElementById )
{
return document.getElementById( id );
}
else if (document.layers)
{
return document.layers[id];
}
else if (document.all)
{
return document.all[id];
}

return undefined;
}
</script>

</body>
</html>
<%
}else {
............

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Re: Hidden form fields not found in request

Posted by Pid <p...@pidster.com>.
Ognjen Blagojevic wrote:
> Hi Ashok,
> 
> Ashok Venkat wrote:
>> In the below code, i am submitting a form to itself  in the onload
>> method and changing some hidden form field values. After the form is
>> submitted, the hidden values are not available in the request
>> object.As a result, the page gets into an endless loop. 
> 
> Interesting. I treied it, and Firefox stops on JavaScript error in line
> 
>   this_form.BrowserType.value = navigator.appName;
> 
> so the form never gets submitted. After adding one more hidden field:
> 
>   <input type='hidden' name='BrowserType' value='unknown!'>
> 
> everything works fine.
> 
> 
> Regards,
> Ognjen

It looks like a nasty and somewhat unsafe solution to some problem or
other.  Is there a reason you need to submit the page at all?

If you're submitting the page to itself, AND using javascript, why not
just use the scripting to alter the contents of the hidden fields?

They can be uniquely identified on the page if you supply an id
attribute - you could modify them directly...


Alternatively, if you're just testing a concept at this stage, I'd
suggest that you could use an AJAX call to submit the page dimensions to
a backend during onloads execution.


p



>> Thanks for any help
>>
>> Code:
>> //test.jsp
>>
>> if(request.getParameter( "ScreenResolutionHeight" ) == null )
>> {
>> %>
>> <html>
>> <head>
>> <title>Please wait one moment...</title>
>> </head>
>> <body onload='SubmitOnLoad();'>
>>
>> <form method='post' id='ScreenResolutionForm'>
>> <input type='hidden' name='ScreenResolutionWidth' value='1024'>
>> <input type='hidden' name='ScreenResolutionHeight' value='768'>
>>
>> <script>
>> function SubmitOnLoad()
>> {
>> var this_form = FindElementById( 'ScreenResolutionForm' );
>> this_form.ScreenResolutionWidth.value = window.screen.availWidth;
>> this_form.ScreenResolutionHeight.value = window.screen.availHeight;
>> this_form.BrowserType.value = navigator.appName;
>>
>>
>> this_form.submit();
>> }
>>
>> function FindElementById( id )
>> {
>> if( document.getElementById )
>> {
>> return document.getElementById( id );
>> }
>> else if (document.layers)
>> {
>> return document.layers[id];
>> }
>> else if (document.all)
>> {
>> return document.all[id];
>> }
>>
>> return undefined;
>> }
>> </script>
>>
>> </body>
>> </html>
>> <%
>> }else {
>> ............
>>
>> __________________________________________________
>> Do You Yahoo!?
>> Tired of spam?  Yahoo! Mail has the best spam protection around
>> http://mail.yahoo.com 
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Hidden form fields not found in request

Posted by Ognjen Blagojevic <og...@etf.bg.ac.yu>.
Hi Ashok,

Ashok Venkat wrote:
> In the below code, i am submitting a form to itself  in the onload method and changing some hidden form field values. After the form is submitted, the hidden values are not available in the request object.As a result, the page gets into an endless loop. 

Interesting. I treied it, and Firefox stops on JavaScript error in line

   this_form.BrowserType.value = navigator.appName;

so the form never gets submitted. After adding one more hidden field:

   <input type='hidden' name='BrowserType' value='unknown!'>

everything works fine.


Regards,
Ognjen


>  
> Thanks for any help
> 
> Code: 
> 
> //test.jsp
> 
> if(request.getParameter( "ScreenResolutionHeight" ) == null )
> {
> %>
> <html>
> <head>
> <title>Please wait one moment...</title>
> </head>
> <body onload='SubmitOnLoad();'>
> 
> <form method='post' id='ScreenResolutionForm'>
> <input type='hidden' name='ScreenResolutionWidth' value='1024'>
> <input type='hidden' name='ScreenResolutionHeight' value='768'>
> 
> <script>
> function SubmitOnLoad()
> {
> var this_form = FindElementById( 'ScreenResolutionForm' );
> this_form.ScreenResolutionWidth.value = window.screen.availWidth;
> this_form.ScreenResolutionHeight.value = window.screen.availHeight;
> this_form.BrowserType.value = navigator.appName;
> 
> 
> this_form.submit();
> }
> 
> function FindElementById( id )
> {
> if( document.getElementById )
> {
> return document.getElementById( id );
> }
> else if (document.layers)
> {
> return document.layers[id];
> }
> else if (document.all)
> {
> return document.all[id];
> }
> 
> return undefined;
> }
> </script>
> 
> </body>
> </html>
> <%
> }else {
> ............
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Hidden form fields not found in request

Posted by Johnny Kewl <jo...@kewlstuff.co.za>.
---------------------------------------------------------------------------
HARBOR: http://coolharbor.100free.com/index.htm
Now Tomcat is also a cool application server
---------------------------------------------------------------------------

Hi there.... What I suggest you do is get FireFox and the FireBug plugin, 
and then debug the script.
Javascript can be extremely tricky.
Alternatively stick alerts in your code so you can see the script invoking.

Just looking at this I cant see the </form> close tag.
Also I think its better to stick the script in the Headers, so that you sure 
the browser picks up on it before the onload...

Get a debugger, its the only way to get it right... if you have an old 
version of MS interdev, that will also work.

Good luck...


----- Original Message ----- 
From: "Ashok Venkat" <as...@yahoo.com>
To: <us...@tomcat.apache.org>
Sent: Friday, October 26, 2007 4:49 AM
Subject: Hidden form fields not found in request


> Hello,
>
> In the below code, i am submitting a form to itself  in the onload method 
> and changing some hidden form field values. After the form is submitted, 
> the hidden values are not available in the request object.As a result, the 
> page gets into an endless loop.
>
> Thanks for any help
>
> Code:
>
> //test.jsp
>
> if(request.getParameter( "ScreenResolutionHeight" ) == null )
> {
> %>
> <html>
> <head>
> <title>Please wait one moment...</title>
> </head>
> <body onload='SubmitOnLoad();'>
>
> <form method='post' id='ScreenResolutionForm'>
> <input type='hidden' name='ScreenResolutionWidth' value='1024'>
> <input type='hidden' name='ScreenResolutionHeight' value='768'>
>
> <script>
> function SubmitOnLoad()
> {
> var this_form = FindElementById( 'ScreenResolutionForm' );
> this_form.ScreenResolutionWidth.value = window.screen.availWidth;
> this_form.ScreenResolutionHeight.value = window.screen.availHeight;
> this_form.BrowserType.value = navigator.appName;
>
>
> this_form.submit();
> }
>
> function FindElementById( id )
> {
> if( document.getElementById )
> {
> return document.getElementById( id );
> }
> else if (document.layers)
> {
> return document.layers[id];
> }
> else if (document.all)
> {
> return document.all[id];
> }
>
> return undefined;
> }
> </script>
>
> </body>
> </html>
> <%
> }else {
> ............
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com 


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org