我正在尝试在我的编辑屏幕上获取表单以拉出所选记录中的内容,并添加仍然可用但不包括所选内容的选项。因此,如果当前记录的ROC_Group为3,则下拉列表中有3个已选中,4和5为选项。这是我能得到的尽可能接近,但最终得到了当前记录中的内容(3),以及3,4和5作为选项。所以看起来下拉列表中有重复内容。有什么建议?谢谢
<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>
答案 0 :(得分:0)
<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>
。