Search code examples
formscoldfusionform-helperscfquerycfwheels

Send query to CFWheels selectTag form helper, or list with commas in string elements


I have a query that returns names in <lastnamd>, <firstname> format such as

<cfquery name="instructorSelectList" dataSource="GIRSReport">
    SELECT instructor_DBID,
           last_name + ', ' + first_name as instructor_name,
           hid
    FROM   instructors
    WHERE working_status = 'active'
    ORDER BY last_name, first_name  
</cfquery>

I want to use this query for a selectTag form helper. If I do:

    #selectTag
    (
        name="inst",
        id="program",
        options="#ValueList(instructorSelectList.instructor_name)#",
        valueField="#ValueLIst(instructorSelectList.instructor_DBID)#",
        display="#ValueList(instructorSelectList.instructor_name)#",
        selected="",
        label="HID",
        multiple="no",
        includeBlank="true",
        size=1,
        class="form-control",
        prepend="<br/>"
    )#

Then I get a list like <lastname1>, <firstname1>, <lastname2>, <firstname2>, ...

which is obviously not what I want.

If I just try to pass the options parameter a query, such as options="#instructorSelectList.instructor_name#", the options don't fill properly.

The idea is to use a form helper equivalent to

<cfselect
    name="inst" 
    query="instructorSelectList" 
    queryPosition="below"
    value="instructor_DBID" 
    display="instructor_name" 
    label="HID" size=1
    class="form-control">
    <option value=""></option>
</cfselect>

Solution

  • I think what you're needing is to pass a query name to Options, without quotes (or in quotes surrounded by hashes) while the column names are quoted.

    #selectTag
    (
        name="inst",
        id="program",
        options=instructorSelectList,
        valueField="instructor_DBID",
        textField="instructor_name",
        selected="",
        label="HID",
        multiple="no",
        includeBlank="true",
        size=1,
        class="form-control",
        prepend="<br/>"
    )#
    

    More Info: CFWheels selectTag() documentation