2010-10-12 82 views
2

我有一個下拉式更新窗體'id =「tak_id」'從查詢「takType」填充。下拉框有三個選項「sms,chat,tweet」,有三個不同的值「001,002,003」。刪除重複在<select><cfoutput><option>

該字段中的SELECTED值正在重複兩次。如何讓SELECTED值只出現一次?

的代碼是

<cfselect name="tak_id" id="tak_id"> 
    <cfoutput query="takType"> 
         <option >select one</option> 
         <option value="#takType.tak_id#" <cfif takType.tak_id IS tak_id > selected </cfif> > 
         <cfswitch expression="#takType.tak_id#"> 
          <cfcase value="01">SMS </cfcase> 
          <cfcase value="02">chat </cfcase> 
          <cfcase value="03">tweet </cfcase> 
         </cfswitch> 
        </option> 
         <option value="01" >SMS</option> 
         <option value="02" >chat</option> 
         <option value="03" >tweet</option> 
    </cfoutput> 
    </cfselect> 
       </td>       
      </tr> 

非常感謝 Fransis

+0

您正在使用哪種版本的CF? – vas 2010-10-12 15:35:54

+0

我正在使用CF 8 – Fransis 2010-10-13 00:19:57

+1

首先想到爲什麼你的下拉菜單中有多個選項具有相同的值?然後儘量避免這種情況。 – Vikas 2010-10-13 05:58:54

回答

3

爲什麼不將cfif語句移動到三個硬編碼選項中的每一個?

<cfoutput query="takType"> 
        <option >select one</option> 

        <option value="01" <cfif takType.tak_id IS "01" >selected</cfif>>SMS</option> 
        <option value="02" <cfif takType.tak_id IS "02" >selected</cfif>>chat</option> 
        <option value="03" <cfif takType.tak_id IS "03" >selected</cfif>>tweet</option> 
</cfoutput> 
</cfselect> 
2

我想你的意思環繞僅第一組cfoutputs和底部移除硬編碼的3以下。像這樣:

<cfselect name="tak_id" id="tak_id"> 
    <option >select one</option> 
    <cfoutput query="takType"> 
    <option value="#takType.tak_id#" <cfif takType.tak_id IS tak_id > selected </cfif> > 
    <cfswitch expression="#takType.tak_id#"> 
    <cfcase value="01"> 
    SMS 
    </cfcase> 
    <cfcase value="02"> 
    chat 
    </cfcase> 
    <cfcase value="03"> 
    tweet 
    </cfcase> 
    </cfswitch> 
    </option> 
    </cfoutput> 
</cfselect> 

可能有助於查看該查詢的轉儲,因爲這依賴於那三個存在於數據庫中。