Сохранить значение раскрывающегося списка после отправки формы - PullRequest
0 голосов
/ 31 мая 2011

У меня есть форма, где пользователь оценивает стихотворение от 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 ]

2 голосов
/ 31 мая 2011

Зависит от того, как вы храните тот факт, что пользователь уже оценил стихотворение. Но с высокого уровня:

<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 голосов
/ 31 мая 2011

Если вы перебираете список параметров, вы можете сделать это динамически.

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