PRB JavaScript in ASP with Request.Form

A

ATS

PRB JavaScript in ASP with Request.Form

Please help,

I'm having a problem with JavaScript in ASP, where the ASP page crashes when
I try to determine if data was posted from a FORM or through a QueryString.
Where, if the data came through via a FORM, I want to use it 1st, but if not,
to then try using it from the QueryString. Basically, the problem boils down
to using "toString()" on Request.Form("NAME") and Request.QueryString("NAME")
as such:


Post to this page as: TST.asp?STATE=TEST


<%@ Language=JavaScript %>
<%
Response.AddHeader("Pragma", "No-Cache");
%>
<%
var oThis = Request.Form("STATE");
var csResults;

if ((oThis == null) || (typeof(oThis) == "undefined"))
{
csResults = "NULL";
}
else
{
csResults = oThis.toString(); // ASP Crashes here. Why?!??!
}
%>
<html>
<%=csResults%>
</html>

That code crashes at the "toString()" call, which should not be. JavaScript
says all "Object" types have "toString" in them, but both
Request.Form("NAME") and Request.QueryString("NAME") do not seem to have them.

What can be done?
 
E

Evertjan.

=?Utf-8?B?QVRT?= wrote on 21 mrt 2007 in
microsoft.public.inetserver.asp.general:
<%
var oThis = Request.Form("STATE");
var csResults;

if ((oThis == null) || (typeof(oThis) == "undefined"))
{
csResults = "NULL";
}
else
{
csResults = oThis.toString(); // ASP Crashes here. Why?!??!
}
%>
<html>
<%=csResults%>
</html>

The result of Request.Form() is always a string,
and if not existing can be represented by an empty string. So:

<%@ Language=JavaScript %>
<%
var csResults = Request.Form("state");
if (csResults == "") csResults = "NULL";
%>
<%=csResults%>

should meet your requirements, methinks.
 
A

ATS

Thanks for the reply, but it is not working.

When I try this:

<%@ Language=JavaScript %>
<%
Response.AddHeader("Pragma", "No-Cache");
%>
<%
var csTST = " ==>" + Request.Form("STATE") + "<==";
%>
<html>
<%=csTST%>
</html>

I get this:

==>undefinded<==

Strangely, if I do this:

var csTST = Request.Form("STATE") ;
..
..
<%=csTST%>

I get a nice blank.

The issue is that the ASP/JavaScript is not returning a string for
Request.Form("STATE"). In fact, using "typeof(Request.Form("STATE"))" returns
"object". Is there any kind of CStr function available like in VB? By the
way, I do not want to switch to VBScript.
 
E

Evertjan.

=?Utf-8?B?QVRT?= wrote on 21 mrt 2007 in
microsoft.public.inetserver.asp.general:
Thanks for the reply, but it is not working.

When I try this:

<%@ Language=JavaScript %>
<%
Response.AddHeader("Pragma", "No-Cache");
%>
<%
var csTST = " ==>" + Request.Form("STATE") + "<==";
%>
<html>
<%=csTST%>
</html>

I get this:

==>undefinded<==

Strangely, if I do this:

var csTST = Request.Form("STATE") ;
.
.
<%=csTST%>

I get a nice blank.

You are right, but please always quote on usenet, this is not email.

Try:

<%@ Language=JavaScript %>
<%
var csResults = Request.Form("state");
if (''+csResults == 'undefined') csResults = 'NULL';
if (csResults == '') csResults = 'EMPTY';
%>

<% = csResults %>
 
E

Evertjan.

=?Utf-8?B?QVRT?= wrote on 22 mrt 2007 in
microsoft.public.inetserver.asp.general:
Thanks Evertjan for helping, but I found the problem.

With Request.Form and Request.QueryString with JavaScript, one needs
to use ".Item" to make it return the string or undefined/null object.

Example:

var csTST = Request.Form("STATE").Item;

Well done!
 

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,996
Messages
2,570,238
Members
46,826
Latest member
robinsontor

Latest Threads

Top