2011-05-31 113 views
0

我有一个表格,其中用户速率的一首诗,从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。我应该怎么做?

回答

2

取决于您如何存储用户已经对诗评价的事实。但从高层面来看:

<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> 

那么,您是否已经掌握了用户是否评价过该诗?或者是真正的问题?

+0

谢谢查理。要确定用户是否评价过这首诗,我使用: <!---验证名字。 ---> \t \t \t \t \t \t \t aparker81 2011-05-31 11:42:06

0

如果你遍历你的选项列表,你可以动态地做到这一点。

<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>