Form not passing data ???

N

Noozer

Below is some ASP, HTML and javascript. It is part of a page used to
maintain a small database. This code did work at one time, but has since
stopped. For some reason the data on my form is not being passed to the page
specified in the Action property of the form. This is on a Windows 2000 Pro
PC.

I copied the code to another server (Windows XP Pro machine) and it DOES
work as expected there.

The first block is the data located near the middle of the body of my main
page. Each "row" has an OnClick event that calls the function in the second
block.

The second block of code calls a javascript function in the page located on
an IFrame on this page and then makes the IFrame visible.

The third block is located in the IFrame page. It should list all the values
passed from a form POSTed to this page. This comes up empty... All I see is
Start -><- End.

The fourth block is located in another ASP file situated in an IFrame on the
main page. This IFrame is not visible until the javascript in the third
block is executed by clicking a row located in the second block of code. It
contains a hidden form used to pass data back to ASP code on this page.

The final block is also located on the IFrame page. It loads values onto a
hidden form within this page and then submits the form. This is where I'm
having a problem... When this code is called, the Alert function shows the
proper value for "key", and the SUBMIT occurs as expected, but the
subEdit.asp page does not recieve any form value.

Any idea why the Windows 2000 server is not working as expected? I've
already tried restarting IIS and the properties on the virtual directory is
identical on the two PC's.

Thx!!!


<span id="72" class="row" onmouseover="SelectAgent('72','Anne Agent')"
onclick="editAgent('72');" >
<span class="item" style="width: 10em;"><span class="data">Anne
Agent</span></span>
</span>
<span id="69" class="row" onmouseover="SelectAgent('69','Al Over')"
onclick="editAgent('69');">
<span class="item" style="width: 10em;"><span class="data">Al
Over</span></span>
</span>



// Edit an agent ------------------------------------------------
function editAgent(key) {
//Retrieve agent info and make IFRAME visible
frames("EditFrame").getAgent(key);
EditContainer.style.display="block";
}



<%'Located near the beginning of the subEdit.asp page.
response.Write "START ->"
for each name in Request.Form
response.Write name & "<br />" & vbcrlf
next
response.Write "<- END"
%>



<script type="text/javascript" language="javascript">
// Load agent key & activity onto form and
submit ------------------------------------------------
function getAgent(key) {
alert(key);
document.forms("actionForm").reset();
document.forms("actionForm").Key.value = key;
document.forms("actionForm").ToDo.value="Get";
document.forms("actionForm").submit();
}
</script>



<form name="actionForm" id="actionForm" method="POST" action="subEdit.asp"
style="display: none;">
<input type="text" name="Key" id="Key" value="">
<input type="text" name="Name" id="Name" value="">
<input type="text" name="ToDo" id="ToDo" value="">
</form>
 
R

Roland Hall

in message : Below is some ASP, HTML and javascript. It is part of a page used to
: maintain a small database. This code did work at one time, but has since
: stopped. For some reason the data on my form is not being passed to the
page
: specified in the Action property of the form. This is on a Windows 2000
Pro
: PC.
:
: I copied the code to another server (Windows XP Pro machine) and it DOES
: work as expected there.
:
: The first block is the data located near the middle of the body of my main
: page. Each "row" has an OnClick event that calls the function in the
second
: block.
:
: The second block of code calls a javascript function in the page located
on
: an IFrame on this page and then makes the IFrame visible.
:
: The third block is located in the IFrame page. It should list all the
values
: passed from a form POSTed to this page. This comes up empty... All I see
is
: Start -><- End.
:
: The fourth block is located in another ASP file situated in an IFrame on
the
: main page. This IFrame is not visible until the javascript in the third
: block is executed by clicking a row located in the second block of code.
It
: contains a hidden form used to pass data back to ASP code on this page.
:
: The final block is also located on the IFrame page. It loads values onto a
: hidden form within this page and then submits the form. This is where I'm
: having a problem... When this code is called, the Alert function shows the
: proper value for "key", and the SUBMIT occurs as expected, but the
: subEdit.asp page does not recieve any form value.
:
: Any idea why the Windows 2000 server is not working as expected? I've
: already tried restarting IIS and the properties on the virtual directory
is
: identical on the two PC's.
:
: Thx!!!
:
:
: <span id="72" class="row" onmouseover="SelectAgent('72','Anne Agent')"
: onclick="editAgent('72');" >
: <span class="item" style="width: 10em;"><span class="data">Anne
: Agent</span></span>
: </span>
: <span id="69" class="row" onmouseover="SelectAgent('69','Al Over')"
: onclick="editAgent('69');">
: <span class="item" style="width: 10em;"><span class="data">Al
: Over</span></span>
: </span>
:
:
:
: // Edit an agent ------------------------------------------------
: function editAgent(key) {
: //Retrieve agent info and make IFRAME visible
: frames("EditFrame").getAgent(key);
: EditContainer.style.display="block";
: }
:
:
:
: <%'Located near the beginning of the subEdit.asp page.
: response.Write "START ->"
: for each name in Request.Form
: response.Write name & "<br />" & vbcrlf
: next
: response.Write "<- END"
: %>
:
:
:
: <script type="text/javascript" language="javascript">
: // Load agent key & activity onto form and
: submit ------------------------------------------------
: function getAgent(key) {
: alert(key);
: document.forms("actionForm").reset();
: document.forms("actionForm").Key.value = key;
: document.forms("actionForm").ToDo.value="Get";
: document.forms("actionForm").submit();
: }
: </script>
:
:
:
: <form name="actionForm" id="actionForm" method="POST" action="subEdit.asp"
: style="display: none;">
: <input type="text" name="Key" id="Key" value="">
: <input type="text" name="Name" id="Name" value="">
: <input type="text" name="ToDo" id="ToDo" value="">
: </form>

Are you running antivirus with script blocking on the W2K system?

--
Roland Hall
/* This information is distributed in the hope that it will be useful, but
without any warranty; without even the implied warranty of merchantability
or fitness for a particular purpose. */
Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
MSDN Library - http://msdn.microsoft.com/library/default.asp
 
N

Noozer

Roland Hall said:
in message : Below is some ASP, HTML and javascript. It is part of a page used to
: maintain a small database. This code did work at one time, but has since
: stopped. For some reason the data on my form is not being passed to the
page
: specified in the Action property of the form. This is on a Windows 2000
Pro
: PC.

Are you running antivirus with script blocking on the W2K system?

Nope...Other pages on the server are working. There is even a form on the
main form here that works as expected. Wouldn't script blocking stop the
whole script? The ALERT command in the getAgent function does fire and this
is where the script fills and submits the form.

I ruled out a typo when I tried the same code on a new PC and it worked.

The code DID work on the Windows 2000 server two weeks ago. Not sure when it
stopped working properly.
 
N

Noozer

Noozer said:
Below is some ASP, HTML and javascript. It is part of a page used to
maintain a small database. This code did work at one time, but has since
stopped. For some reason the data on my form is not being passed to the page
specified in the Action property of the form. This is on a Windows 2000 Pro
PC.

I copied the code to another server (Windows XP Pro machine) and it DOES
work as expected there.

I made the form visible and added a SUBMIT button and removed the submit
method call in the javascript. Now I need to press the SUBMIT button to
complete the process.

The form is loaded up as I expected, but I click SUBMIT and the REQUEST.FORM
object is STILL empty. This is the ONLY form on the site that is doing this,
and only on this server.

I tried copying files to a new folder and adding a new virtual directory,
but no change.

<*sigh*>
 
D

David Wang [Msft]

What authentication is enabled for the entire website, the page generating
this HTML, and the target POST page?

It is possible for form data to be "missing" if the original page is
authenticated but the target POST page is not authenticated due to an IE
POST optimization (if IE is POST'ing to a website it thinks is
authenticated, it will NOT send the Form data on the first POST because it
thinks it will get rejected by 401 -- however, you fool IE by making the
target POST page not require authentication -- thus, it results in a 200 but
no form data sent). The optimization is reasonable in the case of
high-latency authenticated requests -- suppose the post is for 100MB --
should IE send 100MB on the first post, have it rejected by 401, then send
100MB again with the right credentials the second time?

If this is your problem, then the solution is to make your website uniform
authenticated.

--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
Below is some ASP, HTML and javascript. It is part of a page used to
maintain a small database. This code did work at one time, but has since
stopped. For some reason the data on my form is not being passed to the page
specified in the Action property of the form. This is on a Windows 2000 Pro
PC.

I copied the code to another server (Windows XP Pro machine) and it DOES
work as expected there.

The first block is the data located near the middle of the body of my main
page. Each "row" has an OnClick event that calls the function in the second
block.

The second block of code calls a javascript function in the page located on
an IFrame on this page and then makes the IFrame visible.

The third block is located in the IFrame page. It should list all the values
passed from a form POSTed to this page. This comes up empty... All I see is
Start -><- End.

The fourth block is located in another ASP file situated in an IFrame on the
main page. This IFrame is not visible until the javascript in the third
block is executed by clicking a row located in the second block of code. It
contains a hidden form used to pass data back to ASP code on this page.

The final block is also located on the IFrame page. It loads values onto a
hidden form within this page and then submits the form. This is where I'm
having a problem... When this code is called, the Alert function shows the
proper value for "key", and the SUBMIT occurs as expected, but the
subEdit.asp page does not recieve any form value.

Any idea why the Windows 2000 server is not working as expected? I've
already tried restarting IIS and the properties on the virtual directory is
identical on the two PC's.

Thx!!!


<span id="72" class="row" onmouseover="SelectAgent('72','Anne Agent')"
onclick="editAgent('72');" >
<span class="item" style="width: 10em;"><span class="data">Anne
Agent</span></span>
</span>
<span id="69" class="row" onmouseover="SelectAgent('69','Al Over')"
onclick="editAgent('69');">
<span class="item" style="width: 10em;"><span class="data">Al
Over</span></span>
</span>



// Edit an agent ------------------------------------------------
function editAgent(key) {
//Retrieve agent info and make IFRAME visible
frames("EditFrame").getAgent(key);
EditContainer.style.display="block";
}



<%'Located near the beginning of the subEdit.asp page.
response.Write "START ->"
for each name in Request.Form
response.Write name & "<br />" & vbcrlf
next
response.Write "<- END"
%>



<script type="text/javascript" language="javascript">
// Load agent key & activity onto form and
submit ------------------------------------------------
function getAgent(key) {
alert(key);
document.forms("actionForm").reset();
document.forms("actionForm").Key.value = key;
document.forms("actionForm").ToDo.value="Get";
document.forms("actionForm").submit();
}
</script>



<form name="actionForm" id="actionForm" method="POST" action="subEdit.asp"
style="display: none;">
<input type="text" name="Key" id="Key" value="">
<input type="text" name="Name" id="Name" value="">
<input type="text" name="ToDo" id="ToDo" value="">
</form>
 
R

Roland Hall

in message :
: : > "Noozer" wrote in message : > : Below is some ASP, HTML and javascript. It is part of a page used to
: > : maintain a small database. This code did work at one time, but has
since
: > : stopped. For some reason the data on my form is not being passed to
the
: > page
: > : specified in the Action property of the form. This is on a Windows
2000
: > Pro
: > : PC.
:
: <snip>
:
: > Are you running antivirus with script blocking on the W2K system?
:
: Nope...Other pages on the server are working. There is even a form on the
: main form here that works as expected. Wouldn't script blocking stop the
: whole script? The ALERT command in the getAgent function does fire and
this
: is where the script fills and submits the form.
:
: I ruled out a typo when I tried the same code on a new PC and it worked.
:
: The code DID work on the Windows 2000 server two weeks ago. Not sure when
it
: stopped working properly.

I don't see anything that jumps out at me but you could try some things:

1. Put this at the top of your inline code...

dim r
r = Request.ServerVariables("REQUEST_METHOD")
Response.Write r

This should return POST. If it is blank or returns GET, Request.Form will
return nothing.


2. I have never hidden a form with CSS. I do this:

<form action="" method="post">
<input type="hidden: name="var1" value="<%=var1%>" />
</form>

--
Roland Hall
/* This information is distributed in the hope that it will be useful, but
without any warranty; without even the implied warranty of merchantability
or fitness for a particular purpose. */
Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
MSDN Library - http://msdn.microsoft.com/library/default.asp
 
R

Roland Hall

in message
: What authentication is enabled for the entire website, the page generating
: this HTML, and the target POST page?
:
: It is possible for form data to be "missing" if the original page is
: authenticated but the target POST page is not authenticated due to an IE
: POST optimization (if IE is POST'ing to a website it thinks is
: authenticated, it will NOT send the Form data on the first POST because it
: thinks it will get rejected by 401 -- however, you fool IE by making the
: target POST page not require authentication -- thus, it results in a 200
but
: no form data sent). The optimization is reasonable in the case of
: high-latency authenticated requests -- suppose the post is for 100MB --
: should IE send 100MB on the first post, have it rejected by 401, then send
: 100MB again with the right credentials the second time?
:
: If this is your problem, then the solution is to make your website uniform
: authenticated.

David has a good point. Is this on an intranet or internet server?

--
Roland Hall
/* This information is distributed in the hope that it will be useful, but
without any warranty; without even the implied warranty of merchantability
or fitness for a particular purpose. */
Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
MSDN Library - http://msdn.microsoft.com/library/default.asp
 
N

Noozer

David Wang said:
What authentication is enabled for the entire website, the page generating
this HTML, and the target POST page?

It is possible for form data to be "missing" if the original page is
authenticated but the target POST page is not authenticated due to an IE
POST optimization (if IE is POST'ing to a website it thinks is
authenticated, it will NOT send the Form data on the first POST because it
thinks it will get rejected by 401 -- however, you fool IE by making the
target POST page not require authentication -- thus, it results in a 200 but
no form data sent). The optimization is reasonable in the case of
high-latency authenticated requests -- suppose the post is for 100MB --
should IE send 100MB on the first post, have it rejected by 401, then send
100MB again with the right credentials the second time?

If this is your problem, then the solution is to make your website uniform
authenticated.

Aha! This may be related...

FWIW, this is for an intranet site. I need to authenticate users on this
main page only. The rest of the site doesn't care who's browsing it.

The whole site is configured to allow anonymous access, EXCEPT for the page
in question. The page contained in the IFRAME is also set to allow anonymous
access. The only page that requires authentication (Integrated Windows
Authentication) is this main page that contains the IFRAME.

If this is the case, must I make the entire site authenticate the same, or
just these two pages?

I'll check this out shortly.

Thanks!!!
 
N

Noozer

: If this is your problem, then the solution is to make your website
uniform
: authenticated.

David has a good point. Is this on an intranet or internet server?

Intranet... I'm using the Integrated Windows Authentication on ONLY the main
page discussed here. The page contained in the IFRAME (and rest of the site)
is configured for anonymous access.

I'll have to adjust it, but unfortunately this will have to wait until
later.

Thanks guys!
 
D

David Wang [Msft]

The page that is accepting the POST must be authenticated. Because IE
already thinks the website is authenticated, that first POST will not have
form data, so the page accepting the POST must NOT be anonymous or else it
will get empty form data.

--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//

David Wang said:
What authentication is enabled for the entire website, the page generating
this HTML, and the target POST page?

It is possible for form data to be "missing" if the original page is
authenticated but the target POST page is not authenticated due to an IE
POST optimization (if IE is POST'ing to a website it thinks is
authenticated, it will NOT send the Form data on the first POST because it
thinks it will get rejected by 401 -- however, you fool IE by making the
target POST page not require authentication -- thus, it results in a 200 but
no form data sent). The optimization is reasonable in the case of
high-latency authenticated requests -- suppose the post is for 100MB --
should IE send 100MB on the first post, have it rejected by 401, then send
100MB again with the right credentials the second time?

If this is your problem, then the solution is to make your website uniform
authenticated.

Aha! This may be related...

FWIW, this is for an intranet site. I need to authenticate users on this
main page only. The rest of the site doesn't care who's browsing it.

The whole site is configured to allow anonymous access, EXCEPT for the page
in question. The page contained in the IFRAME is also set to allow anonymous
access. The only page that requires authentication (Integrated Windows
Authentication) is this main page that contains the IFRAME.

If this is the case, must I make the entire site authenticate the same, or
just these two pages?

I'll check this out shortly.

Thanks!!!
 
N

Noozer

Thanks... This was the problem. I've got the whole site authenticating now
and it works fine.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,900
Latest member
Nell636132

Latest Threads

Top