ColdFusion Auto Select Option

What is the best way to automatically select the selected item for the select / option element on the back? Here's how we do it:

<select id="grade" name="grade">
  <option value="A"<cfif form.grade = 'A'> selected="selected"</cfif>>A</option>
  <option value="B"<cfif form.grade = 'B'> selected="selected"</cfif>>B</option> 
  <option value="C"<cfif form.grade = 'C'> selected="selected"</cfif>>C</option> 
  <option value="D"<cfif form.grade = 'D'> selected="selected"</cfif>>D</option> 
  <option value="F"<cfif form.grade = 'F'> selected="selected"</cfif>>F</option>
</select>

Is there a cleaner or easier way to do this with ColdFusion? Thanks in advance!

+3
source share
8 answers

using cfscript with functions

<cfscript>
Function setSelected(val1, val2){
    if (val1 EQ val2)
    {
        Return 'selected="selected"';
    } 
    else 
    {
        Return '';
    }
}
</cfscript>
<select id="grade" name="grade">
  <option value="A" #setSelected('A', form.grade)#>A</option>
  <option value="B" #setSelected('B', form.grade)#>B</option> 
  <option value="C" #setSelected('C', form.grade)#>C</option> 
  <option value="D" #setSelected('D', form.grade)#>D</option> 
  <option value="F" #setSelected('F', form.grade)#>F</option>
</select>
+1
source

In my opinion, one of the best ways is to use CFSelect:

<cfquery name="getGrades" datasource="#application.dsn#">
  select gradeLetter from Grades
</cfquery>

<cfselect
  name="grade"
  query="getGrades"
  display="gradeLetter"
  value="gradeLetter"
  selected="#form.grade#" />
+3
source

:

<cfsavecontent variable="GradeOptions">
A:A
B:B
C:C
D:D
F:F
</cfsavecontent>

<select id="grade" name="grade">
    <cfloop index="CurOpt" list="#trim(GradeOptions)#" delimiters="#Chr(10)#">
        <option value="#ListFirst(CurOpt,':')#"<cfif form.grade EQ ListFirst(CurOpt,':')> selected="selected"</cfif>>#ListRest(CurOpt,':')#</option>
    </cfloop>
</select>


, : - , :

<cfsavecontent variable="GradeOptions">
A
B
C
D
F
</cfsavecontent>

<select id="grade" name="grade">
    <cfloop index="CurOpt" list="#trim(GradeOptions)#" delimiters="#Chr(10)#">
        <option<cfif form.grade EQ CurOpt> selected="selected"</cfif>>#CurOpt#</option>
    </cfloop>
</select>
+2

.

<cfparam name="form.grade" default="C">
<cfset mydata = [{grade="A",value="A"},{grade="B",value="B"},{grade="C",value="C"},{grade="D",value="D"},{grade="F",value="F"}]>
<cfoutput>
<select id="grade" name="grade">
    <cfloop array="#mydata#" index="i">
        <option value="#i['value']#"<cfif form.grade EQ i['grade']> selected="selected"</cfif>>#i['value']#</option>
    </cfloop>
</select>
</cfoutput>
+2

?

<cfparam name="form.grade" default="A">
<cfoutput>
<select id="grade" name="grade">
<cfloop index="code" from="65" to="90">
    <option value="#Chr(code)#"<cfif form.grade EQ Chr(code)> selected="selected"</cfif>>#Chr(code)#</option>
</cfloop>
</select>
</cfoutput>

, :)

0

, , , , , :

<cfset GradeOptions = Grades.readAvailable() />

<select id="grade" name="grade">
    <cfloop query="GradeOptions">
        <option value="#GradeCode#"
            <cfif Form.Grade EQ GradeCode>selected="selected</cfif>
            >#GradeCode# - #GradeDesc#</option>
    </cfloop>
</select>

( , , /, .)

, , , , , .

0

, , , ()

   <select id="grade" name="grade">
      <option value="A"<cfif form.grade EQ "A"> selected </cfif> >A</option>
      <option value="B"<cfif form.grade EQ "B"> selected </cfif> >B</option> 
      <option value="C"<cfif form.grade EQ "C"> selected </cfif> >C</option> 
      <option value="D"<cfif form.grade EQ "D"> selected </cfif> >D</option> 
      <option value="F"<cfif form.grade EQ "F"> selected </cfif> >F</option>
   </select>

, .

slicker , jQuery. Ray Camden jQuery CF Ben Nadel Javascript CF ...

<script type="text/javascript">                                         
  jQuery(document).ready(function() {
     $("#grade option[value='<CFOUTPUT>#FORM.Grade#</CFOUTPUT>']")
      .attr('selected', 'selected');
  });
</script>

<select id="grade" name="grade">
  <option value="A">A</option>
  <option value="B">B</option> 
  <option value="C">C</option> 
  <option value="D">D</option> 
  <option value="F">F</option>
</select>

, , , , CF , ( , , , - ).

Explore any of the popular JavaScript libraries and your ColdFusion client code will become more elegant and powerful.

0
source

Source: https://habr.com/ru/post/1706530/


All Articles