cfselect在将记录拉入表单时具有重复选项
问题描述:
我试图在我的编辑屏幕上获取表单以拉取所选记录中的内容,并添加仍然可用的选项,但不包括所选内容。因此,如果当前记录的ROC_Group为3,则下拉列表中选择了3个,选择了4个和5个。这与我所能得到的一样接近,但最终得到记录(3)中的内容,以及3,4和5作为选项。所以它看起来像下拉菜单中有重复。有什么建议么?谢谢cfselect在将记录拉入表单时具有重复选项
<cfselect name="ROC_GROUP" ><cfoutput query="GetSiteNotoUpdate">
<cfif GetSiteNotoUpdate.ROC_GROUP is "#ROC_GROUP#">
<option value="#ROC_GROUP#" selected="yes">#ROC_GROUP#</option>
<option>3</option><option>4</option><option>5</option>
<cfelse>
<option value="#ROC_GROUP#">#ROC_GROUP#</option>
</cfif>
</cfoutput></cfselect>
答
<cfif GetSiteNotoUpdate.ROC_GROUP is "#ROC_GROUP#">
您的比较是使用两个变量,并重命名为ROC_GROUP
。如果第二个引用与GetSiteNotoUpdate.ROC_GROUP不同的变量,则需要对其进行限定。否则,CF将不知道你的意思,并可能将上述解释为<cfif someQueryVariable equals itself>
,这总是如此。
只需将“当前选定”值置于单独的变量中,如CurrentlySelectedGroup
。然后,它在你的循环内的查询中的每个值进行比较:,因为你没有使用任何额外的功能
<select name="ROC_GROUP">
<cfoutput query="GetSiteNotoUpdate">
<option value="#ROC_GROUP#"
<cfif GetSiteNotoUpdate.ROC_GROUP eq CurrentlySelectedGroup>selected="yes"</cfif>>
#ROC_GROUP#
</option>
</cfoutput>
</select>
顺便说一句,有没有必要使用<cfselect>
。只需使用普通的html <select>
即可。