選択ボックスにいくつかの値があります。<option>フォームが送信されたときにタグ間の値とテキストの両方を取得することは可能ですか?
<option value="413">Highland </option>
<option value="414">Inverclyde </option>
または、検索のために名前をテーブルまたは配列に保存する必要があると思いますが、フォームが送信されたときに両方をテーブルに挿入できれば、はるかに簡単になります。
選択ボックスにいくつかの値があります。<option>フォームが送信されたときにタグ間の値とテキストの両方を取得することは可能ですか?
<option value="413">Highland </option>
<option value="414">Inverclyde </option>
または、検索のために名前をテーブルまたは配列に保存する必要があると思いますが、フォームが送信されたときに両方をテーブルに挿入できれば、はるかに簡単になります。
Stephen Moretti が指摘したように、値からテキストを導出するには少なくとも 2 つの方法があります。
適切な値と選択の値のテキストを含むリストを使用することもできます。したがって、代わりに:
<option value="23">Twenty Three</option>
使用する
<option value="23,TwentyThree">Twenty Three</option>
バックエンドで list*() 関数を使用します。
最後に、JavaScript を使用して、選択したオプションのテキストを隠しフィールド (または類似のフィールド) に保存できます。私の意見では、これは最も魅力的でないオプションです。1 つ目は、他のオプションよりも手間がかかることです。2 つ目は、クライアントで JS がオフになっていると失敗するためです。
データのサイズ/タイプに応じて、説明したようにオプション値を書き換えるか、スティーブンが説明したようにルックアップ テーブルをオフにするでしょう。
選択した値/テキストのペアが数個しかない場合は、値を保存してください。テキストを select 以外の場所に出力する必要がある場合は、if/elseif/else または case ブロックを記述してテキストを表示します。
かなりの数の値/テキストのペアがある場合は、これらを使用してデータベースにルックアップ テーブルを作成することをお勧めします。これを使用して選択を生成し、保存された値からテキストを後で出力できます。
値とテキストのペアが多すぎる場合、どうすればわかりますか? それらを表示するための case ブロックを作成すると、ばかげた量の退屈なコードが生成されます。;)
もう 1 つのオプションは、値とテキストのペアの構造体をセッション スコープに保存することです。フォーム アクション ページで、その値を使用してテキストを簡単に検索できます。
これの優れた点は、完全にサーバー側であり、データベースへの余分な移動が含まれていないことです。
保持したくない場合は、セッション スコープから構造体を削除します。