• ベストアンサー

選択されたメニューアイテムの番号は?

以下のようなフォームの送信をCGIプログラムで受けた時、フォーム部品の一つのオプションメニューの洗濯されたアイテムの番号を取得したいのですが、どのようにしたらよろしいのでしょうか? <select name="wordlist"> <option selected>訳語検索の結果</option> for ($i=1; $i<$#midashi; $i++) {print "<option value=\"$midashi[$i]\">$midashi[$i]"; } </select> どなたかアドバイスをどうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.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'}]; と取り出すことができるでしょう。

tonka729
質問者

お礼

yotokesa さま、どうもありがとうございました。<select>の勉強がまだ足りませんでした。数字トラベルをペアにするアイディアなんですね。  次が恥ずかしいのと驚きとで、飛び上がっちゃいました。for文や配列の押さえ方が甘かったですね。あたたかいご指摘感謝です。  それにしても、<input type=hidden name="midashi_$i" には驚きました。しかも隠しテキストフィールドをこんなに作るなんて。。。ショックを受けました。(笑) ありがとうございました。