将记录拉入表单时,cfselect具有重复选项

时间:2015-09-04 17:48:11

标签: cfml coldfusion-11

我正在尝试在我的编辑屏幕上获取表单以拉出所选记录中的内容,并添加仍然可用但不包括所选内容的选项。因此,如果当前记录的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>

1 个答案:

答案 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>