2011-03-23 6 views
1

"その他"オプションを持つ選択ボックスを実装する必要があります。これを選択すると、ユーザーはテキストフィールドに別のオプションを入力できるようになります。私の懸念事項は、データベースにセーブする方法です。私は、この実装を処理するためのユニークで効率的な方法を探しています。選択ボックスで「その他」オプションを処理する最良の方法は何ですか?

これを実装した最後の時間は、テーブルに2つの列があり、1つは選択ボックス用、もう1つはテキストフィールド入力用です。

誰もがこれを行うためのより良い方法を考えることができますか?

+0

テキストボックスの値が同じ列にあってはならない理由は何ですか?フォームハンドラに特定の条件の下で選択ボックスの値の代わりにテキストボックスの値を使用させるだけのようです。私は何かが欠けていない限り。 –

+0

@Fareesh Vijayarangamあなたは、送信時にテキストボックス値の値を取得してデータベースに保存することができますが、そのユーザーがそのフィールドを再度編集するときには、選択ボックスオプション以降に選択ボックスには表示されません別のデータベーステーブルから引き出されます。 – Pzanno

+0

editメソッドの特定のケースでは、 "Other"をあらかじめ選択した小さなコードを書き込んで、テキストボックスにデータベースのデータを入力することができます。とにかく最後に2つの列を使用すると、このコードの行に沿って何かを書くことになります。 –

答えて

1

選択ボックスオプションを駆動するメタデータテーブルがあると仮定すると、新しい「その他」オプションをそのテーブルに挿入し、メインテーブルの新しく追加されたアイテムの主キーを参照するロジックを追加できます。フォームに入力されたデータを保存します。

"その他"の投稿ごとにメタデータテーブルを狂わせたくない場合は、あなたのアプローチが良いと思う - 「他の」値を格納する別のnull可能な列だと思う。

+0

私はこの答えに興味があります。私はもう少しそれを探検し、私のプロジェクトのためにそれが価値があるかどうかを見ていきたいと思います。選択ボックスのオプションにユーザーの多くを埋め込むのは良い方法ですが、スパムのエントリはどうですか? – Pzanno

+0

そうですね、私は、フォーム提出(および重複)を通じた迷惑メールエントリを最小限に抑えるソリューションがあると確信しています。 Googleの周り。 – Kon

2

私はあなたの選択ボックスにフィールド(ID、アイテム、プライマリ)を入力する参照テーブルを持っています。 'primary'はドロップダウンリストに含めるべきかどうかを示すboolです。

他の項目を入力すると、項目は参照表に追加され、 'primary'項目はfalseになります。

この実装の素晴らしい点は、概念的にはクリーンです。アイテム値を格納するフィールドは1つだけです。多くのユーザーがその他のフィールドを追加している場合は、 boolをtrueに設定すると、メインドロップダウンリストに表示されます。

関連する問題