Re: Checkbox Array

From: David Morgan (david_at_davidmorgan.me.uk)
Date: 08/04/04


Date: Wed, 4 Aug 2004 22:34:47 +0100

Actually, that could be a bit dangerous if people add to the record set
while the person is checking the boxes.

A better approach would be to GetRows the recordset in to an array and
create a hidden field that contains all the IDs.

<%
Set objRs = objConn.Execute("STATEMENT", , adCmdText)
If Not objRs.EOF Then
    bHasResults = True
    arrResults = objRs.GetRows
    iResults = UBound(arrResults, 2)
End If %>

<form ...>
<% For i = 0 To iResults %>
<input type=checkbox name="chkInvoiceID_<%=arrResults(0, i)%>" value=ON>
<% Next%>
<input type="hidden" name="AllIDs" value="<% For i = 0 To iResults:
Response.Write arrResults(0, i) & ",": Next%>"
</form>

Then in the post to page do

stAllIDs = Request.Form("AllIDs")
If Len(stAllIDs) > 0 Then
    arrAllIDs = Split(stAllIDs, ",")
End If

And then proceed as before using arrAllIDs(i) instead of the record set ID
field.

Gotta dash...

"David Morgan" <david@davidmorgan.me.uk> wrote in message
news:uDqa0gmeEHA.1356@TK2MSFTNGP09.phx.gbl...
> No.
>
> With radios, check boxes and buttons, only the values of selected, (or
> clicked), elements are submitted.
>
> You could re-run the query in the "post-to" page and loop through the
> recordset saying
>
> If (Request.Form("cbxAddToInvoice_" & objRs.Fields("ID").Value).Count Then
> ' Update to true
> Else
> ' Update to false
> End If
>
> Note you would need to change the name of the checkboxes on the original
> page to incorporate the ID of the record the checkbox represents. You
> probably have this in the checkboxes' value field at the moment. You can
> change the value field to anything then.
>
> Regards
>
> David
>
>
> "WC Justice" <WCJEInc@bellsouth.net> wrote in message
> news:j%aQc.836$zJ4.247@bignews1.bellsouth.net...
> > I have an ASP form that uses a recordset to build a table, with one of
the
> > columns containing a checkbox. Upon posting, the ASP code of the
Post-To
> > page uses the "For i = 1 to request.form("chkAddToInvoice").count"
method
> to
> > go through the array, but it only counts checked boxes. Not only is
this
> > causing the corresponding Update statement to write values to the wrong
> > records, it is preventing me from using the "False" value of the check
box
> > to run its corresponding Update statement.
> >
> > Is there a way to set up the checkbox so that it is counted whether it
is
> > selected or not?
> >
> >
>
>