how to retrieve CheckBox value using GET Method ?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • magix

    how to retrieve CheckBox value using GET Method ?

    If I have

    <form action="process .asp" method="get" name="form1">

    ....
    ....
    <input TYPE=checkbox name=sports VALUE=Cricket>
    <input TYPE=checkbox name=sports VALUE=Swimming>
    <input TYPE=checkbox name=sports VALUE=Football>

    </form>

    If I check all, when submit, I will get in URL string

    http://....?... &sports=Cricket &sports=Swimmin g&sports=Footba ll

    So, in process.asp, how can I differentiate each of them with
    request.queryst ring("sports)?
    How cna I know how many "sports" have been selected ?
    Assume that all must having same checkbox name, and must use GET method,
    instead of POST

    Thanks.

    regards,
    Magix


  • Evertjan.

    #2
    Re: how to retrieve CheckBox value using GET Method ?

    magix wrote on 21 aug 2008 in microsoft.publi c.inetserver.as p.general:
    If I have
    >
    <form action="process .asp" method="get" name="form1">
    >
    ...
    ...
    <input TYPE=checkbox name=sports VALUE=Cricket>
    <input TYPE=checkbox name=sports VALUE=Swimming>
    <input TYPE=checkbox name=sports VALUE=Football>
    >
    </form>
    >
    If I check all, when submit, I will get in URL string
    >
    http://....?... &sports=Cricket &sports=Swimmin g&sports=Footba ll
    >
    So, in process.asp, how can I differentiate each of them with
    request.queryst ring("sports)?
    I think, but please test first:

    request.queryst ring("sports")( 0)
    request.queryst ring("sports")( 1)
    How cna I know how many "sports" have been selected ?
    request.queryst ring("sports"). length


    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)

    Comment

    • Dave Anderson

      #3
      Re: how to retrieve CheckBox value using GET Method ?

      Evertjan. wrote:
      >How cna I know how many "sports" have been selected ?
      >
      request.queryst ring("sports"). length
      More like .Count:



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

      • Evertjan.

        #4
        Re: how to retrieve CheckBox value using GET Method ?

        Dave Anderson wrote on 21 aug 2008 in
        microsoft.publi c.inetserver.as p.general:
        Evertjan. wrote:
        >>How cna I know how many "sports" have been selected ?
        >>
        >request.querys tring("sports") .length
        >
        More like .Count:
        http://msdn.microsoft.com/en-us/library/ms524784.aspx
        Yesss!


        --
        Evertjan.
        The Netherlands.
        (Please change the x'es to dots in my emailaddress)

        Comment

        • =?Utf-8?B?T2xkIFBlZGFudA==?=

          #5
          RE: how to retrieve CheckBox value using GET Method ?

          "magix" wrote:
          If I have
          <input TYPE=checkbox name=sports VALUE=Cricket>
          <input TYPE=checkbox name=sports VALUE=Swimming>
          <input TYPE=checkbox name=sports VALUE=Football>
          >
          So, in process.asp, how can I differentiate each of them with
          request.queryst ring("sports)?
          How cna I know how many "sports" have been selected ?
          Other answers right, but more complex than needed.

          Just do this:

          <%
          ....
          sports = Trim( Request("sports ") ) ' do not need to say Request.QuerySt ring
          If sports = "" Then
          ... no sports selected ...
          Else
          sports = Split( sports, ", " ) ' that is COMMA-SPACE and *not* just comma
          Response.Write "You selected " & UBound(sports)+ 1 " sports."
          End If
          ....
          %>

          This works fine so long as none of the VALUE= values for the checkboxes
          contain COMMA-SPACE.

          But you should be sure you really need to do the SPLIT, first. You may be
          able to do many SQL queries without bothering to get the individual choices.

          Comment

          • Bob Barrows [MVP]

            #6
            Re: how to retrieve CheckBox value using GET Method ?

            Old Pedant wrote:
            "magix" wrote:
            >
            >If I have
            > <input TYPE=checkbox name=sports VALUE=Cricket>
            > <input TYPE=checkbox name=sports VALUE=Swimming>
            > <input TYPE=checkbox name=sports VALUE=Football>
            >>
            >So, in process.asp, how can I differentiate each of them with
            >request.querys tring("sports)?
            >How cna I know how many "sports" have been selected ?
            >
            Other answers right, but more complex than needed.
            >
            Just do this:
            >
            <%
            ...
            sports = Trim( Request("sports ") ) ' do not need to say
            Request.QuerySt ring
            Perhaps not, but I would suggest you do so.
            I'm surprised a pedant would advise someone to be less that precise! :-)

            --
            Microsoft MVP -- ASP/ASP.NET
            Please reply to the newsgroup. The email account listed in my From
            header is my spam trap, so I don't check it very often. You will get a
            quicker response by posting to the newsgroup.


            Comment

            • =?Utf-8?B?T2xkIFBlZGFudA==?=

              #7
              Re: how to retrieve CheckBox value using GET Method ?



              "Bob Barrows [MVP]" wrote:
              Old Pedant wrote:
              sports = Trim( Request("sports ") ) ' do not need to say
              Request.QuerySt ring
              >
              Perhaps not, but I would suggest you do so.
              I'm surprised a pedant would advise someone to be less that precise! :-)
              LOL! But it *IS* precise...if you know what you are doing.



              Since QueryString is searched first, then
              Request("foo")
              is equivalent to
              Request.QuerySt ring("foo")
              with the proviso that the latter actually exists.

              Now, pedantically, if for some reason the querystring value does not exist
              then the search process will indeed try to find that name in all the other
              collections. But unless your code has created a "sports" key/value pair in
              Request.Form (that is, via POST) or Cookies, that's not an issue.

              Anyway, the reason I tended to use just Request was simple: During
              development and debug, I'd use METHOD=GET in my <FORM>s so I could see in the
              URL what I was passing. Then, once it was working and debugged, I'd change
              to METHOD=POST but wouldn't have to change my VBS code.

              A hack, but I think a reasonable one.

              Anyway, I'll bet in this case there's no reason for him to know how many
              were selected and/or separate them. I'll bet that if he constructed the SQL
              efficiently he'd just need to do something such as
              sql = " ... WHERE sport IN ('" & Replace(Request ("sports")," , ","','")
              & "') "
              or similar.






              Comment

              • Anthony Jones

                #8
                Re: how to retrieve CheckBox value using GET Method ?

                "Old Pedant" <OldPedant@disc ussions.microso ft.comwrote in message
                news:D73A832B-9D6A-4EB3-B8BE-CEC2CB4BC64B@mi crosoft.com...
                "magix" wrote:
                >
                If I have
                <input TYPE=checkbox name=sports VALUE=Cricket>
                <input TYPE=checkbox name=sports VALUE=Swimming>
                <input TYPE=checkbox name=sports VALUE=Football>

                So, in process.asp, how can I differentiate each of them with
                request.queryst ring("sports)?
                How cna I know how many "sports" have been selected ?
                >
                Other answers right, but more complex than needed.
                >
                I'm sorry perhaps I'm miss reading you but you seem to be saying the other
                answers are more complex than needed and yours below is simpler??
                Just do this:
                >
                <%
                ...
                sports = Trim( Request("sports ") ) ' do not need to say
                Request.QuerySt ring

                Bob was more gentle, I would say that this is not a good practice at all.
                Always use either .QueryString or .Form. I've seen the short cut above
                cause too many headaches especially when a page was using GET then switches
                to POST.

                If sports = "" Then
                ... no sports selected ...
                Else
                sports = Split( sports, ", " ) ' that is COMMA-SPACE and *not* just
                comma
                Response.Write "You selected " & UBound(sports)+ 1 " sports."
                End If
                ...
                %>
                >
                This works fine so long as none of the VALUE= values for the checkboxes
                contain COMMA-SPACE.
                >
                Yikes. Is that 'less complex'? Have you tested it? Does it seem to you to
                match the querystring structure seen in the OP?
                But you should be sure you really need to do the SPLIT, first. You may be
                able to do many SQL queries without bothering to get the individual
                choices.
                >
                Thats an interesting assertion. Can you achieve that without creating a SQL
                statement using string concatenation which I'm sure you would agree would be
                a bad thing?


                --
                Anthony Jones - MVP ASP/ASP.NET


                Comment

                • Anthony Jones

                  #9
                  Re: how to retrieve CheckBox value using GET Method ?

                  "magix" <magix@asia.com wrote in message
                  news:48ad9aed$1 _2@news.tm.net. my...
                  If I have
                  >
                  <form action="process .asp" method="get" name="form1">
                  >
                  ...
                  ...
                  <input TYPE=checkbox name=sports VALUE=Cricket>
                  <input TYPE=checkbox name=sports VALUE=Swimming>
                  <input TYPE=checkbox name=sports VALUE=Football>
                  >
                  </form>
                  >
                  If I check all, when submit, I will get in URL string
                  >
                  http://....?... &sports=Cricket &sports=Swimmin g&sports=Footba ll
                  >
                  So, in process.asp, how can I differentiate each of them with
                  request.queryst ring("sports)?
                  How cna I know how many "sports" have been selected ?
                  Assume that all must having same checkbox name, and must use GET method,
                  instead of POST
                  >
                  Why GET instead of POST? Do you deliberately want enable the possiblity
                  that a response can be delivered from the cache?

                  --
                  Anthony Jones - MVP ASP/ASP.NET


                  Comment

                  • Dave Anderson

                    #10
                    Re: how to retrieve CheckBox value using GET Method ?

                    Old Pedant wrote:
                    Anyway, the reason I tended to use just Request was simple: During
                    development and debug, I'd use METHOD=GET in my <FORM>s so I could
                    see in the URL what I was passing. Then, once it was working and
                    debugged, I'd change to METHOD=POST but wouldn't have to change my
                    VBS code.
                    This seems to contradict your earlier argument that Request("foo") is the
                    same as Request.QuerySt ring("foo") because QueryString is the first
                    collection searched.

                    If you change your form methods to POST, are you not introducing a
                    useless -- and potentially interfering -- search through the QueryString
                    collection for your post-development scripts?

                    A hack, but I think a reasonable one.
                    Well, that's one opinion.

                    We have solved countless problems by breaking people of this habit.
                    Likewise, default properties.



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