2010-09-15 35 views
1

我在選擇框中有幾個值。提交表單時,是否可以在<option>標籤之間同時獲得值和文本?從ColdFusion中的selectbox獲取值和文本

<option value="413">Highland </option> 
<option value="414">Inverclyde </option> 

另外我想我必須存儲在一個表或數組用於檢索的名字,但如果表單提交時我可以在表中插入兩個會容易得多。

回答

2

如果您在選擇中只有幾個值/文本對,那麼只需存儲該值。如果您需要將文本輸出到除select外的其他位置,只需編寫一個if/elseif/else或case塊來顯示文本。

如果你有很多值/文本對,那麼最好在數據庫中用這些值創建一個查找表。你可以用它來生成你的選擇並從存儲值中輸出文本以後的日子。

如何判斷您是否有太多價值/文本對?如果編寫大小寫塊來顯示它們會導致一些無聊的代碼。 ;)

+0

謝謝你們,我希望有一些CF功能可以做到這一點。會很好,但沒關係。 – Roscoeh 2010-09-15 16:33:14

4

正如Stephen Moretti指出的那樣,至少有兩種方法可以從價值中推導出文本。

您也可以使用包含正確值和選擇值的文本的列表。因此,而不是:在後端

<option value="23">Twenty Three</option> 

使用

<option value="23,TwentyThree">Twenty Three</option> 

和使用列表*()函數。

最後,您可以使用JavaScript將所選選項的文本存儲在隱藏字段(或類似字段)中。在我看來,這是最不具吸引力的選擇。首先,這比其他選項要多得多,其次是因爲如果在客戶端關閉JS,它會失敗。正如我所描述的那樣,根據數據的大小/類型,我可能會重寫選項值,或者關閉查找表,正如Stephen所描述的那樣。

0

另一種選擇是將值/文本對的結構存儲在會話範圍中,然後在表單操作頁面上使用該值輕鬆查找文本。

這樣做的好處在於,它完全是服務器端,不包括額外的數據庫訪問。

如果您不想保留它,請從會話範圍中刪除結構。

+0

很好的建議 – Roscoeh 2010-09-18 15:16:43