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>即可。