保留<cfselect>值以及自我引用表单上的其他表单值</cfselect>

时间:2014-03-22 04:29:29

标签: ms-access coldfusion selection

我想提交表单,然后将表单自我引用并保留值。

如何设置它以保留我选择的项目?它可以在第二次表格加载时保留所选项目的值吗? 我所知道的是,我可能不得不做一个CFloop,而不是直接在查询属性上运行我的查询。

继承我的选择代码:

<cfselect Name="CandyLand" required="yes" size="6" 
Query="getCandyInfo" style="width: 200px" 
Value="UserID"  Display="Name" >
<Option selected="selected"></option>
</cfselect>

编辑: 好吧,Dan的解决方案似乎就我如何提出问题而言起作用。我忘了提到我有3个其他表单对象,我希望在表单提交时保留其表单值。例如,我有一个文本框,一个2单选按钮,以及一个我想保留其值的复选框。这些值是通过 Bind 获得的,当我点击<Select>中的其他对象时,会更改这些对象的值。

例如: <cfinput name="Chocolate" type="checkbox" bind="cfc:Candyland.getFat({CandyLand@click})" bindAttribute="checked" value="#Form.Chocolate#">

尽管保留了已点击的项目,但在提交后,所有对象都会变为空白。

2 个答案:

答案 0 :(得分:4)

使用<cfselect>让自己的生活更加艰难。只需使用普通<select>,然后通过表单提交检查其值,将相应选项设置为“已选中”。

<select name="CandyLand" [etc]>
    <cfloop query="getCandyInfo">
        <option value="#userId#"<cfif userId eq form.CandyLand> selected</cfif>>#name#</option>
[etc]

CFML社区中有一个积极的举动,就是放弃这种语言,并鼓励人们使用更强大的解决方案:

答案 1 :(得分:0)

cfselect具有选定的属性。您只需检查表单是否已提交。

if (StructKeyExists(form, "CandyLand"))
SelectedValue = Form.CandyLand;
else
SelectedValue = GetCandyInfo.UserID[1];


<cfselect name="CandyLand" etc
selected = SelectedValue>