2011-03-23 78 views
1

我需要實現具有「其他」選項的選擇框。如果選擇此選項,用戶應能夠在文本字段中鍵入不同的選項。我關心的是如何將保存到數據庫中。我正在尋找獨特而有效的方法來處理這個實現。在選擇框中處理「其他」選項的最佳方式是什麼?

我相信我最後一次實現這個我有兩列在我的表中,一個用於選擇框和一個用於文本字段輸入。

任何人都可以想到一個更好的方法來做到這一點?

+0

爲什麼文本框的值不能在同一列?似乎你可以讓表單處理程序在特定條件下使用文本框的值而不是選擇框的值。除非我錯過了一些東西。 – 2011-03-23 21:10:21

+0

@Fareesh Vijayarangam你說得對,我可以獲取文本框的值並將其存儲在數據庫中,但是當該用戶再次編輯該字段時,選擇框將不會顯示它,因爲選擇框選項從另一個數據庫表中提取。 – Pzanno 2011-03-23 21:29:04

+0

在編輯方法的特定情況下,您可能會編寫一個預先選擇「其他」的小代碼,並用數據庫中的數據填充文本框。我想,當你使用兩列時,最終你會最終沿着這段代碼的行寫一些東西。 – 2011-03-23 21:31:02

回答

1

假設您有一些驅動您的選擇框選項的元數據表,您可以添加邏輯,將新的「其他」選項插入到該表中,然後在主表中引用新添加的項的主鍵存儲表單輸入的數據。

如果您不希望每次「其他」提交都混淆元數據表,那麼我相信您的方法很好 - 只是一個單獨的可存儲「其他」值的可空列。

+0

我對這個答案很感興趣。我想我會再探索一下,看看它是否值得我的項目。這將是一個很好的方式來填充選擇框選項和更多來自用戶,但垃圾郵件條目呢? – Pzanno 2011-03-23 21:30:52

+0

對,呃..我確定有解決方案可以通過表單提交(和重複)來最小化垃圾郵件條目。谷歌周圍。 – Kon 2011-03-23 23:41:10

2

我將有一個參考表,用字段填充您的選擇框:id,item,primary。其中'primary'是一個bool,指示它是否應該包含在你的下拉列表中。

然後,當用戶輸入其他項目時,這些項目將被添加到您的參考表中,'主'字段爲false。

這個實現的好處在於它在概念上是乾淨的 - 只有一個字段存儲您的項目值,並且如果您的許多用戶正在爲其他人添加特定字段,則只需將「主要」布爾爲真,它會出現在你的主下拉列表中。

相關問題