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

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • =?Utf-8?B?QVRT?=

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

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

    In ASP, Request.Form and Request.QuerySt ring 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=T EST

    <%@ Language=JavaSc ript %>
    <%
    Response.AddHea der("Pragma", "No-Cache");
    %>
    <html>
    <%
    var csTST = Request.Form("S TATE");

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

    csTST = Request.QuerySt ring("STATE");

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

    From this sample, the output will be as such:

    Request.Form("S TATE") = ""
    Request.QuerySt ring("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?

  • McKirahan

    #2
    Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryStr

    "ATS" <ATS@discussion s.microsoft.com wrote in message
    news:D0BA7279-D9BA-4FD0-91C6-C0A498D359DB@mi crosoft.com...
    HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryString
    >
    In ASP, Request.Form and Request.QuerySt ring 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=T EST
    >
    <%@ Language=JavaSc ript %>
    <%
    Response.AddHea der("Pragma", "No-Cache");
    %>
    <html>
    <%
    var csTST = Request.Form("S TATE");
    >
    if ((csTST == "") || (typeof(csTST) == "undefined" ))
    {
    %>
    Request.Form("S TATE") is NULL/Empty/Blank<br>
    <%
    }
    else
    {
    %>
    Request.Form("S TATE") = "<%=csTST%>"<br >
    <%
    }
    >
    csTST = Request.QuerySt ring("STATE");
    >
    if ((csTST == "") || (typeof(csTST) == "undefined" ))
    {
    %>
    Request.QuerySt ring("STATE") is NULL/Empty/Blank<br>
    <%
    }
    else
    {
    %>
    Request.QuerySt ring("STATE") = "<%=csTST%>"<br >
    <%
    }
    %>
    </html>
    >
    From this sample, the output will be as such:
    >
    Request.Form("S TATE") = ""
    Request.QuerySt ring("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.)


    Comment

    • Anthony Jones

      #3
      Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryStr


      "ATS" <ATS@discussion s.microsoft.com wrote in message
      news:D0BA7279-D9BA-4FD0-91C6-C0A498D359DB@mi crosoft.com...
      HOWTO Make CStr for JavaScript on ASP w/ Request.Form and QueryString
      >
      In ASP, Request.Form and Request.QuerySt ring 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=T EST
      >
      <%@ Language=JavaSc ript %>
      <%
      Response.AddHea der("Pragma", "No-Cache");
      %>
      <html>
      <%
      var csTST = Request.Form("S TATE");
      >
      if ((csTST == "") || (typeof(csTST) == "undefined" ))
      {
      %>
      Request.Form("S TATE") is NULL/Empty/Blank<br>
      <%
      }
      else
      {
      %>
      Request.Form("S TATE") = "<%=csTST%>"<br >
      <%
      }
      >
      csTST = Request.QuerySt ring("STATE");
      >
      if ((csTST == "") || (typeof(csTST) == "undefined" ))
      {
      %>
      Request.QuerySt ring("STATE") is NULL/Empty/Blank<br>
      <%
      }
      else
      {
      %>
      Request.QuerySt ring("STATE") = "<%=csTST%>"<br >
      <%
      }
      %>
      </html>
      >
      From this sample, the output will be as such:
      >
      Request.Form("S TATE") = ""
      Request.QuerySt ring("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.QuerySt ring("STATE").I tem // 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.



      Comment

      • =?Utf-8?B?QVRT?=

        #4
        Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and Quer

        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.

        Comment

        • Dave Anderson

          #5
          Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and Quer

          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.


          Comment

          • =?Utf-8?B?QVRT?=

            #6
            Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and Quer


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

            Maybe in later MSDN's or later VisualStudio's it does, but ours does not.

            Comment

            • Anthony Jones

              #7
              Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and Quer


              "ATS" <ATS@discussion s.microsoft.com wrote in message
              news:9AE498E0-A7DA-4008-A8E9-4FE31E0D0AFE@mi crosoft.com...
              >
              Actually, no, in our Visual Studio 2003, with the MSDN, dated July 2004,
              there is no documentation anywheres about the Request.Form or
              Request.QuerySt ring.
              >
              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.2003 FEB.1033/iisref/htm/ref_vbom_reqocq s.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:-



              In the same intuative place.







              Comment

              • Dave Anderson

                #8
                Re: HOWTO Make CStr for JavaScript on ASP w/ Request.Form and Quer

                [Please quote on USENET]

                "ATS" wrote:
                Actually, no, in our Visual Studio 2003, with the MSDN, dated July
                2004, there is no documentation anywheres about the Request.Form
                or Request.QuerySt ring.
                I did not say the Visual Studio documentation said anything about it. I said
                that Intellisense does.




                --
                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.

                Comment

                Working...