我正在嘗試創建一個<select>
下拉列表,它將根據URL
變量(或默認值)選擇哪個<option>
。但是,我不希望我的選項列表看起來像;嵌套「cfloop」標籤以循環通過對
name_az,name_za,最新的,最古老的
由於這是不是很方便,但我也不想使用這些在我的代碼;
名稱A-Z(默認),名稱Z-A,最新帶,最老帶
因爲明明就是使更多的工作,爲自己。
我可以手動創建每個選項列表,並對每組選項執行<cfif>
檢查以選擇所需的選項。然而,正如任何設計師所知道的,當你創建一個循環列表並簡單地將兩個值添加到該列表中時,會產生大量額外的不必要的工作。
下面是我目前的代碼;
<select>
<cfset sortlist = "name_az|Name A-Z (Default),name_za|Name Z-A,newest|Newest Bands,oldest|Oldest Bands">
<cfoutput>
<cfloop list="#sortlist#" delimiters="," index="sortpair">
<cfloop list="#sortpair#" delimiters="|" index="sortphrase">
<option value="#sortphrase#">#sortphrase#</option>
</cfloop>
</cfloop>
</cfoutput>
</select>
我希望它返回此:
<select>
<option value="name_az">Name A-Z (Default)</option>
<option value="name_za">Name Z-A</option>
<option value="newest">Newest Bands</option>
<option value="oldest">Oldest Bands</option>
</select>
然而,很明顯我要求它返回sortphrase
無論在哪裏上市,所以它會返回,因爲這:
<select>
<option value="name_az">name_az</option>
<option value="Name A-Z (Default)">Name A-Z (Default)</option>
<option value="name_za">name_za</option>
<option value="Name Z-A">Name Z-A</option>
etc..
</select>
有沒有辦法可能創建一個<cfloop>
我可以在列表中循環x
值的數量?
這就是我想說的,循環它的概念是一種方式「正確的」因爲你想循環列表本身,但顯然你不能在cfloop列表上設置'from'和'to'值。但是,您的解決方案看起來像是我需要的解決方案,我還沒有看到#listFirst#和#listLast#屬性,所以謝謝!我現在就試試這個。 – Banny 2013-03-21 12:38:17
肯定更喜歡數組的想法。這是一個比狹窄列表更適合的方式。您可以更輕鬆地閱讀這些值以發現任何問題,並且創建新值也很容易。謝謝:) – Banny 2013-03-21 12:41:53
我遇到了一個小問題,我複製並粘貼了你的代碼,但是我收到一個錯誤,提示「變量名稱未定義」 – Banny 2013-03-21 12:46:25