Solved

How do you display a Checked button.

Posted on 2013-06-13
6
190 Views
Last Modified: 2013-07-03
I have the field CMTEE_PREF_NEW
Varchar(50)

it has this information (POL,SOP,EE,ADMIN,TF,ANY)

My question has 6 checkbox. How I can make the checkbox checked when the user load that forms to update his profile...


This is my coldfusion cfouput

<cfoutput>#DisplayCVIToolvolunteer.CMTEE_PREF_NEW#</cfoutput>

I will get this information: POL,SOP,EE,ADMIN,TF,ANY

How I can checked into the forms? when the user load the forms...

[x] Policy setting committees (POL)
[x] Standard of practice setting committees (SOP)
[x] Committees related to education and eligibility issues (EE)
....

this is my code.

<p><br>
            <label for="strEmail"><strong><strong>2.</strong> We have categorized the various committees.  Which of the following types of committee would you prefer to serve on?</label>
          </p>
          <table border="0" cellspacing="0" cellpadding="0" width="100%" class="qtable">
            <tr>
              <td colspan="2" height="5" width="100%"><!---  This is your database results: <cfoutput><input type="text" name="CMTEE_PREF" value="#DisplayCVITool.CMTEE_PREF#" style="width: 200px;background:red;"></cfoutput><br>--->
                <!---          				<input type="checkbox" name="CMTEE_PREF" id="CMTEE_PREF1" value="POL">&nbsp;<label>Policy setting committees (POL)</label>--->
                <input type="checkbox" name="CMTEE_PREF_NEW" id="CMTEE_PREF1" 
value="POL"
<cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "POL")>checked</cfif>>
                &nbsp;
                <label>Policy setting committees (POL)</label>
                <br>
                <input type="checkbox" name="CMTEE_PREF_NEW" id="CMTEE_PREF2" 
value="SOP"
<cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "SOP")>checked</cfif>>
                &nbsp;
                <label>Standard of practice setting committees (SOP)</label>
                <br>
                <input type="checkbox" name="CMTEE_PREF_NEW" id="CMTEE_PREF3" 
value="EE"
<cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "EE")>checked</cfif>>
                &nbsp;
                <label>
                Committees related to education and eligibility issues <em>(EE)</em></
                label><br>
                <input type="checkbox" name="CMTEE_PREF_NEW" id="CMTEE_PREF4" 
value="ADMIN"
<cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "ADMIN")>checked</cfif>>
                &nbsp;
                <label>Administrative committees such as Finance or Elections <em>(ADMIN)</em></label>
                <br>
                <input type="checkbox" name="CMTEE_PREF_NEW" id="CMTEE_PREF5" 
value="TF"
<cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "TF")>checked</cfif>>
                &nbsp;
                <label>Task Forces (typically short term commitment) <em>(TF)</em></label>
                <br>
                <input type="checkbox" name="CMTEE_PREF_NEW" id="CMTEE_PREF6" 
value="ANY"
<cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "ANY")>checked</cfif>>
                &nbsp;
                <label>Doesn’t matter, I just want to volunteer. <em>(ANY)</em></label></td>
            </tr>
          </table>

Open in new window

SQL-Table-data.jpg
reading-yes.jpg
display-data.jpg
0
Comment
Question by:koila
  • 3
  • 2
6 Comments
 
LVL 52

Expert Comment

by:_agx_
ID: 39245957
I'd recommend NOT storing lists in a db table, because it's error prone, not to mention extremely hard to query. For example,  how would you find all records with both 'TF' and 'EE'?

That said, while I can't test it now - your code should work.  Unless maybe your list contains different values or extra spaces? Lists are extremely sensitive to *any* differences, including spaces, which is one of the reasons to avoid them ...

Test case:

<cfset DisplayCVITool.CMTEE_PREF = "POL,SOP,EE">
<form>
POL <input type="checkbox" name="CMTEE_PREF_NEW" value="POL"
        <cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "POL")>checked</cfif>>
SOP <input type="checkbox" name="CMTEE_PREF_NEW" value="SOP"
        <cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "SOP")>checked</cfif>>
EE  <input type="checkbox" name="CMTEE_PREF_NEW" value="EE"
        <cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "EE")>checked</cfif>>
</form>
0
 
LVL 4

Author Comment

by:koila
ID: 39248071
Hello Agx,

So your recomandation is to have a field YES NO for POL
and YES No for SOP ?


thank you,
0
 
LVL 52

Expert Comment

by:_agx_
ID: 39248955
(Edit) No, I usually create a separate table for storing many-to-many relationships. Have a separate table for distinct volunteers and categories. Then store each volunteer + category in a 3rd table, as a separate record.  

Volunteer      Unique volunteer records ..
Columns: VolunteerID (PK), FirstName, LastName, .....

Category:   Distinct categories    POL, SOP, EE, etc...
Columns:   CategoryID (PK), CategoryTitle, CategoryCode  (POL, SOP, EE, etc...)

VolunteerCategory:  One record for each volunteer + category
Columns: VolunteerID, CategoryID

Example:

VolunteerID | CategoryID
22 |  3   <=== ie Volunteer AA + POL
22 |  5   <=== ie Volunteer AA + EE
22 |  1   <=== ie Volunteer AA + SOP
12 |  3   <=== ie Volunteer BB+ POL
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
LVL 28

Assisted Solution

by:Pravin Asar
Pravin Asar earned 250 total points
ID: 39257813
Here is simple example, which I think is efficient way to populate and set the checkboxes.

<!--- All Options ---->
<cfset fChkValues="POL,SOP,EE,ADMIN,TF,ANY"/>

<!--- Retrieved from user profile --->

<cfset chkValues="POL,ADMIN,EE"/>
<cfif #len(chkValues)#>
<cfoutput>For checkbox "chk1": <b>#chkvalues#</b></cfoutput>
</cfif>

<!--- Build the form --->
<cfform name="f1">

<!--- Loop over to populate the form --->
<!---
      For setting the checked value, use the GetCheckedFlag()
--->
<cfloop list="#fChkValues#" index="vx">
<cfoutput>
<br/><cfinput type="checkbox" name="chk1" value="#vx#" checked="#GetCheckedFlag(chkValues,vx)#"/>#vx#</cfoutput>
</cfloop>
<br/><cfinput type="submit" name="submit" value="submit"/>
</cfform>
<cfscript>
function GetCheckedFlag(chklist,chkvalue) {
  if (ListFind(chklist,chkvalue) gt 0) { return "yes"; }
  return "no";
}
</cfscript>
0
 
LVL 52

Accepted Solution

by:
_agx_ earned 250 total points
ID: 39257939
> <cfif listFindNoCase(DisplayCVITool.CMTEE_PREF, "SOP")>checked</cfif>>
> if (ListFind(chklist,chkvalue)

Essentially, that's exactly what the original code is doing already ...

@koila - Like I said, personally I recommend against storing lists. BUT your original code should've worked as is. Unless your "lists" contain extra values - perhaps spaces? Lists are extremely sensitive to differences.  Try trimming it or replacing spaces with an empty string.

<!--- add extra spaces deliberately to verify it works --->
<cfset DisplayCVITool.CMTEE_PREF = "  POL, SOP,   EE   ">
<cfset fixedValue = replace(DisplayCVITool.CMTEE_PREF, " ", "", "all")>
<form>
POL <input type="checkbox" name="CMTEE_PREF_NEW" value="POL"
        <cfif listFindNoCase(fixedValue, "POL")>checked</cfif>>
SOP <input type="checkbox" name="CMTEE_PREF_NEW" value="SOP"
        <cfif listFindNoCase(fixedValue, "SOP")>checked</cfif>>
EE  <input type="checkbox" name="CMTEE_PREF_NEW" value="EE"
        <cfif listFindNoCase(fixedValue, "EE")>checked</cfif>>
</form> 

Open in new window

0
 
LVL 4

Author Comment

by:koila
ID: 39297421
thank you please help me with my other questions.
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Coldfusion graceful timeout 3 59
Weird Behavior in ColdFusion 8 78
Coldfusion session variables in scheduled job 1 321
ColdFusion Rereplace 3 80
CFGRID Custom Functionality Series -  Part 1 Hi Guys, I was once asked how it is possible to to add a hyperlink in the cfgrid and open the window to show the data. Now this is quite simple, I have to use the EXT JS library for this and I achiev…
Sometimes databases have MILLIONS of records and we need a way to quickly query that table to return the results me need. Sure you could use CFQUERY but it takes too long when there are millions of records. That is why SOLR was invented. Please …
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question