Coldfusion 表单提交后保留下拉列表值

Coldfusion 表单提交后保留下拉列表值,coldfusion,Coldfusion,我有一个表单,用户将一首诗的评分从1分到3分。我的代码如下: <select name="rating"> <cfif len(duplicateCheck.score)><option value="#duplicateCheck.score#">You scored: #duplicateCheck.score#</option> <cfelse><option value="">&ndash; Rate Th

我有一个表单,用户将一首诗的评分从1分到3分。我的代码如下:

<select name="rating">
<cfif len(duplicateCheck.score)><option value="#duplicateCheck.score#">You scored:  #duplicateCheck.score#</option>
<cfelse><option value="">&ndash; Rate This Poem &ndash;</option>
</cfif>
<option value="1">1</option>
<option value="2">2</option>
    <option value="3">3</option>
 </select> 

如果用户已经对这首诗进行了评分,我将尝试选择他们之前的分数。如果没有,用户可以选择1-3。我应该怎么做呢?

取决于你如何存储用户已经对这首诗进行评级的事实。但从高层次来看:

<option value="1"<cfif userHasSelected eq 1> selected="selected"</cfif>>1</option>
<option value="2"<cfif userHasSelected eq 2> selected="selected"</cfif>>2</option>
<option value="3"<cfif userHasSelected eq 3> selected="selected"</cfif>>3</option>

那么,你是否已经掌握了用户是否对这首诗进行评分的方法?或者这才是真正的问题?

如果您循环查看选项列表,您可以动态地执行此操作

<cfloop from="1" to="3" index="thisOption">
   <option value="#thisOption#" <cfif userHasSelected eq thisOption> selected="selected"   
   </cfif>>#thisOption#</option>
</cfloop>
或者您可以移动代码,从选项html中选择下拉列表,我更喜欢它

<cfloop from="1" to="3" index="thisOption">
   <cfset variables.selected = userHasSelected eq thisOption? 'selected' : '' />
   <option value="#thisOption#" #selected#>#thisOption#</option>
</cfloop>

谢谢你,查理。要确定用户是否对这首诗进行了评分,我使用:&ndash;评价这首诗&ndash; 1 2 3