Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryStr

Reply
Thread Tools

HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryStr

 
 
ATS
Guest
Posts: n/a
 
      03-21-2007
HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryString

In ASP, Request.Form and Request.QueryString return objects that do not
support "toString", or any JavaScript string operation on parameters not
passed.

Example: Make a TST.asp and post to it as TST.asp?STATE=TEST

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

if ((csTST == "") || (typeof(csTST) == "undefined"))
{
%>
Request.Form("STATE") is NULL/Empty/Blank<br>
<%
}
else
{
%>
Request.Form("STATE") = "<%=csTST%>"<br>
<%
}

csTST = Request.QueryString("STATE");

if ((csTST == "") || (typeof(csTST) == "undefined"))
{
%>
Request.QueryString("STATE") is NULL/Empty/Blank<br>
<%
}
else
{
%>
Request.QueryString("STATE") = "<%=csTST%>"<br>
<%
}
%>
</html>

From this sample, the output will be as such:

Request.Form("STATE") = ""
Request.QueryString("STATE") = "REGISTER"

This is WRONG. The Request.Form is blank, but yet, the test for "" and even
typeof failed to detect it. What I want is some kind of CStr function so that
the returned data is 100% turned into a string that JavaScript can work upon.

Any ideas?

 
Reply With Quote
 
 
 
 
McKirahan
Guest
Posts: n/a
 
      03-21-2007
"ATS" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
> HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryString
>
> In ASP, Request.Form and Request.QueryString return objects that do not
> support "toString", or any JavaScript string operation on parameters not
> passed.
>
> Example: Make a TST.asp and post to it as TST.asp?STATE=TEST
>
> <%@ Language=JavaScript %>
> <%
> Response.AddHeader("Pragma", "No-Cache");
> %>
> <html>
> <%
> var csTST = Request.Form("STATE");
>
> if ((csTST == "") || (typeof(csTST) == "undefined"))
> {
> %>
> Request.Form("STATE") is NULL/Empty/Blank<br>
> <%
> }
> else
> {
> %>
> Request.Form("STATE") = "<%=csTST%>"<br>
> <%
> }
>
> csTST = Request.QueryString("STATE");
>
> if ((csTST == "") || (typeof(csTST) == "undefined"))
> {
> %>
> Request.QueryString("STATE") is NULL/Empty/Blank<br>
> <%
> }
> else
> {
> %>
> Request.QueryString("STATE") = "<%=csTST%>"<br>
> <%
> }
> %>
> </html>
>
> From this sample, the output will be as such:
>
> Request.Form("STATE") = ""
> Request.QueryString("STATE") = "REGISTER"
>
> This is WRONG. The Request.Form is blank, but yet, the test for "" and

even
> typeof failed to detect it. What I want is some kind of CStr function so

that
> the returned data is 100% turned into a string that JavaScript can work

upon.
>
> Any ideas?
>


Adding this returns what you expect:

<form method="post">
<input type="text" name="STATE" value="">
<input type="submit" value="Submit">
</form>

This too: http://localhost/temp/TST.asp?STATE=

(If I understand you correctly.)


 
Reply With Quote
 
 
 
 
Anthony Jones
Guest
Posts: n/a
 
      03-22-2007

"ATS" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
> HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryString
>
> In ASP, Request.Form and Request.QueryString return objects that do not
> support "toString", or any JavaScript string operation on parameters not
> passed.
>
> Example: Make a TST.asp and post to it as TST.asp?STATE=TEST
>
> <%@ Language=JavaScript %>
> <%
> Response.AddHeader("Pragma", "No-Cache");
> %>
> <html>
> <%
> var csTST = Request.Form("STATE");
>
> if ((csTST == "") || (typeof(csTST) == "undefined"))
> {
> %>
> Request.Form("STATE") is NULL/Empty/Blank<br>
> <%
> }
> else
> {
> %>
> Request.Form("STATE") = "<%=csTST%>"<br>
> <%
> }
>
> csTST = Request.QueryString("STATE");
>
> if ((csTST == "") || (typeof(csTST) == "undefined"))
> {
> %>
> Request.QueryString("STATE") is NULL/Empty/Blank<br>
> <%
> }
> else
> {
> %>
> Request.QueryString("STATE") = "<%=csTST%>"<br>
> <%
> }
> %>
> </html>
>
> From this sample, the output will be as such:
>
> Request.Form("STATE") = ""
> Request.QueryString("STATE") = "REGISTER"
>
> This is WRONG. The Request.Form is blank, but yet, the test for "" and

even
> typeof failed to detect it. What I want is some kind of CStr function so

that
> the returned data is 100% turned into a string that JavaScript can work

upon.
>
> Any ideas?
>


You need to bear in mind that that both form and querystring fields can be
multivalued hence both actual return an indexable object. The objects
returned have an Item indexer property that is marked as the default
property. In VBScript whether to access this default property or not is
determined by whether the assignment is prefixed with the Set keyword. In
JScript default properties are ignored and the object reference is always
passed.

Hence in the code above it doesn't matter what name you pass to QueryString
or Form you will always get an object back. I.E. typeof(csTest) ==
'object' will always be true.

Use code like this:-

csTST = Request.QueryString("STATE").Item // note the additional explicit
use of Item.

Now with no state in the query string then typeof(csTST) == 'undefined' is
true.

With ?state= then typeof(csTST) == 'string' is true and csTST == "" is
true.

With ?state=NY then typeof(csTST) == 'string' is true and csTST == "" is
false.

Personally I would just use:-

if (csTest)
{

}

in my code.



 
Reply With Quote
 
ATS
Guest
Posts: n/a
 
      03-22-2007
Thanks Anthony, this helps,

All that was needed was the ".Item".

Sadly, nowhere in the ASP/IIS documentation is that mentioned. And it makes
a HUGE difference.

 
Reply With Quote
 
Dave Anderson
Guest
Posts: n/a
 
      03-22-2007
ATS wrote:
> All that was needed was the ".Item".
>
> Sadly, nowhere in the ASP/IIS documentation is that mentioned.
> And it makes a HUGE difference.


Yes, it does. That is one of the many reasons why I suggest people use
Visual Studio when writing ASP in JScript -- even though the documentation
tell you nothing, Intellisense tells you plenty about the structure of
objects. And Visual Web Developer Express is free!



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.


 
Reply With Quote
 
ATS
Guest
Posts: n/a
 
      03-23-2007

Actually, no, in our Visual Studio 2003, with the MSDN, dated July 2004,
there is no documentation anywheres about the Request.Form or
Request.QueryString.

Maybe in later MSDN's or later VisualStudio's it does, but ours does not.
 
Reply With Quote
 
Anthony Jones
Guest
Posts: n/a
 
      03-23-2007

"ATS" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>
> Actually, no, in our Visual Studio 2003, with the MSDN, dated July 2004,
> there is no documentation anywheres about the Request.Form or
> Request.QueryString.
>
> Maybe in later MSDN's or later VisualStudio's it does, but ours does not.


I'm use VS 2003 with the supplied MSDN installed.

On my system the docs are found here (bet if you tweak 2003FEB to 2004JUL
it'd work on yours)

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/iisref/htm/ref_vbom_reqocqs.h
tm

It's natural to expect to find this documentation under Server Tech / Active
Server Pages but nooo!

You have to go through Server Tech -> IIS ->SDK ->IIS -> Reference ->IIS
Development -> ASP Ref.
Intuative huh?

Online it's here:-

http://msdn.microsoft.com/library/en...8557fe2de0.asp

In the same intuative place.







 
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
HOWTO make a progress bar based on the databound control? Igor ASP .Net 0 05-24-2006 12:41 PM
Howto make a ssh connection? Marcelo Java 7 10-04-2005 03:15 PM
HOWTO: Make Reports that can pass parameters at Run-time? :: ASP.NET + CR.NET Don Wash ASP .Net 4 07-29-2004 12:58 PM
howto make app1 sessions not expire while app2 is being use... Antonio Lopez Arredondo ASP .Net 1 12-03-2003 08:42 PM
Concerning string.cstr() Michael Lawson C++ 3 10-28-2003 09:49 AM



Advertisments