- ベストアンサー
選択されたメニューアイテムの番号は?
以下のようなフォームの送信をCGIプログラムで受けた時、フォーム部品の一つのオプションメニューの洗濯されたアイテムの番号を取得したいのですが、どのようにしたらよろしいのでしょうか? <select name="wordlist"> <option selected>訳語検索の結果</option> for ($i=1; $i<$#midashi; $i++) {print "<option value=\"$midashi[$i]\">$midashi[$i]"; } </select> どなたかアドバイスをどうかよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
番号とは? value=$i とすれば $f{'wordlist'} には番号が入ります。 直近の質問と合わせて for ($i = 0; $i <= $#midashi; $i++) { print "<option value=$i>$midashi[$i]"; } for ($i = 0; $i <= $#midashi; $i++) { print "<input type=hidden name=\"midashi_$i\" value=\"$midashi[$i]\">"; } print "<input type=hidden name=\"midashi_num\" value=$#midashi> --- 受け取り側で for ($i = 0; $i <= $f{'midashi_num'}; $i++) { $midashi[$i] = $f{"midashi_$i"); } とすれば $selected_item = $midashi[$f{'wordlist'}]; と取り出すことができるでしょう。
お礼
yotokesa さま、どうもありがとうございました。<select>の勉強がまだ足りませんでした。数字トラベルをペアにするアイディアなんですね。 次が恥ずかしいのと驚きとで、飛び上がっちゃいました。for文や配列の押さえ方が甘かったですね。あたたかいご指摘感謝です。 それにしても、<input type=hidden name="midashi_$i" には驚きました。しかも隠しテキストフィールドをこんなに作るなんて。。。ショックを受けました。(笑) ありがとうございました。