オプションメニュー項目の値の取得方法について

このQ&Aのポイント
  • フォームのオプションメニュー項目の値をアクションプログラムから取得する方法が分からないです。
  • value属性を使用して選択された項目の値を取得する方法についてアドバイスをお願いします。
  • 参考書に書かれている方法では、前方のキーを取得することができず、後方の見出し語しか取得できません。
回答を見る
  • ベストアンサー

オプションメニュー項目の値の取得は?

フォームのオプションメニュー項目の書き方は分かりましたが、項目の値をアクションプログラム側から完全には取得できませんでした。つまり以下のように1項目には2つの情報を入れられますが: <select name="wordlist"> print "<option selected>見出し語の一覧\n"; for ($i=0; $i<=$#midashi; $i++) {print "<option value=$i>$midashi[$i]</option>\n"; } print "</select>\n"; 前方のキーになる部分valueを $selectedItem=$f{'wordlist'};では取得できず、後方の見出し語しか取得できません。どの参考書にもこれでvalue 値が得られると書かれてはいますが。。 どなたか、アドバイスをよろしくお願いします。もし私の質問がわかりにくい場合はご指摘ください。質問をし直しますので。

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

Perlから出力された HTMLソースを見て、どこか違っているところを探ってみてください。Perlソースを見ていても見逃してしまうところも HTMLソースなら何処が動かない原因かすぐに分かると思います。 >後方の見出し語しか取得できません ここの意味がよく分からなかったのですが、具体的にどんな値が得られたのですか?

tonka729
質問者

お礼

yatokesaさま、どうもありがとうございます。別のCGIプログラムではちゃんと結果が出ましたので、私のエラーがどこかにあるようです。しばらく探してみます。

関連するQ&A

  • 配列をオプションメニューに書き込むには?

    PHPを始めたばかりです。HTMLスクリプトの中に埋め込めるのがPHPの特徴だ、 と本に書かれていますが、次のようにオプションメニューリストを書こうとする時は、どうしたらよいのでしょうか。JavaScript との連携も考えないと不可能のように思えるのですが、いかがなのでしょうか?どなたか、どうかよろしく御教示下さい。 (辞書の見出し語配列 $wordlist は、この同じプログラムファイル内の別の場所で、PHPをつかって辞書ファイルを読んで取得されているものとします。グローバル変数です) <SELECT size="15" name="wordlist"> for ($i = 0; $i <= $max-1; $i++) //オプションメニューに記入する { for ($i=0; $i<=$#wordlist; $i++) { print "<option value=$wordlist[$i]>$wordlist[$i]></option>\n"; } } </SELECT>

    • ベストアンサー
    • PHP
  • 選択されたメニューアイテムの番号は?

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

    • ベストアンサー
    • Perl
  • オプションメニュー・クリックした時の処理

    "wordlist"という名前のオプションメニューを作りました。クリックしてdo/selection.cgiを呼び出して送信を受けたデータ(クリックしたアイテムの番号)を読んで処理を行わせようと考えています。 <form name="resultform" action="do_selection.cgi"> --- --- <select name="wordlist" type=submit> <option selected>訳語検索の結果</option> for ($i=1; $i<$#midashi; $i++) {print "<option value=\"$midashi[$i]\">$midashi[$i]"; } </select> </form> ところが、これではdo_selection.cgiが呼び出されませんでした。またsubmit はメニューでクリックしたアイテムの番号をどのようにして送り出すのかも分かりません。tohohoさんのページを見ておりますが、見つかりませんでした。どなたかアドバイスをいただきたいのですが。。。(もし私の質問に不明の箇所がありましたら、補足をいたしますのでご指摘下さい]

    • ベストアンサー
    • Perl
  • オプションメニューのアイテムを一括して再表示したい

    <select name="wordlist"> <option selected>訳語検索の結果</option> for ($i=1; $i<$#midashi; $i++) {print "<option value=\"$midashi[$i]\">$midashi[$i]"; } でいったん表示したメニューを、CGIプログラムが次のプロセスに進んで表示データを更新するとします。でもこのメニューのアイテムだけは全部ひとつの変数に保存しておき、画面再表示の時にこの変数を呼び出して簡単に表示しようと考えています。  が、変数への保存、再表示ができるのかが私のperl知識では分かりません。どなたかお教えいただけると助かります。

    • ベストアンサー
    • Perl
  • オプションメニューの選択されたアイテム内の空白が取得できません

    オプションメニューで選択したアイテムのなかに、 in loco のように空白を含む文字列がある場合、これを送信しても in しか取得されませんでした。空白を含めて取得するにはどうしたらよいのでしょうか? <FORM method="POST" action="EditDic.cgi" name="kdicFORM" target="frame3"> <INPUT type="submit" name="job" value="下から選べ!"> <SELECT size="10" name="wordlist">       for ($i=0; $i<=$#wordlist; $i++) {        <option value=@wordlist[$i]>@wordlist[$i]</option> } </SELECT> </FORM>

    • ベストアンサー
    • Perl
  • セレクトメニューの値の取得

    質問します。 下記のようなセレクトメニューがあった場合に、表示されている値(AA,BB)をJavaScriptで取得する場合はどのようなコーディングをすればよろしいのでしょうか? <select name="SL_CMB" onChange="alert();"> <option value="1" Selected>AA</option> <option value="2" >BB</option> <option value="3" >CC</option> <option value="4" >DD</option> <option value="5">EE</option> </select>

  • セレクトメニューで2つの項目や値を渡す方法はありますか?

    良かったら教えてください。 セレクトメニューで2つの項目や値を渡す方法は ありますか? 普通は、 <select name="test"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> と言う感じですが、 「テスト」を選ぶと name="test1" name="test2"の項目で、 value="1111" value="2222" 選択項目は、1つですが、2つの項目、 2つの値を次のCGIに渡す事は、 可能でしょうか? 教えてください。

    • ベストアンサー
    • HTML
  • HTML オプションメニューの自動作成

    下記のようなオプションメニューで連続した項目を作るには? javascrip でfor文を使って出来ないでしょうか? また onLoad="楽に作る関数" とかで最初からこのオプションメニューを自動作成出来ませんか? <SELECT> <OPTION value="123" selected>123</OPTION> <OPTION value="124" selected>124</OPTION> <OPTION value="125" selected>125</OPTION> <OPTION value="126" selected>126</OPTION> <OPTION value="127" selected>127</OPTION> <OPTION value="128" selected>128</OPTION> <OPTION value="129" selected>129</OPTION> <OPTION value="130" selected>130</OPTION> </SELECT> よろしくお願します。

  • 条件を付けたセレクトメニューの値の取得

    JavaScriptで下記の流れの入力フォームを作成しています。 (1)一つ目のセレクトメニューで選択した項目に応じて、もう1つのセレクトメニューの内容を変更する (2)submitボタンを押すと、次のWeb画面で選択した内容を表示する (1)については色々なところのサンプルコードを参考にしつつ、なんとか作成できました。 しかし、(2)は値の受け渡しがうまく出来ずに頭を抱えています。 (unitの値もgroupの値も共に空欄が返ってくる) ◆(1)のコード: 例えばUnit1を選択すると、グループ1(1-1~1-4)が表示され、 Unit2を選択すると、グループ2(2-1~2-4)がセレクトメニューに表示されるというものです。 <TR><TD> <TD><B>Unit</B><BR>  <select name="unit" onchange="groupSet()"> <option value="">-選んでください-</option> <option value="">Unit1</option> <option value="">Unit2</option> <option value="">Unit3</option> </select> <TD><B>Group</B><BR>  <SELECT NAME="group"> <option value="">-選んでください-</option> <option value=""></option> <option value=""></option> <option value=""></option> <option value=""></option> </select> <script> //グループ1の配列 var group1_list=new Array( "-選んでください-","1-1","1-2","1-3","1-4"); //グループ2の配列 var group2_list=new Array( "-選んでください-","2-1","3-2","3-3","3-4"); //グループ3の配列 var group3_list=new Array( "-選んでください-","4-1","4-2","4-3","4-4"); function buSet(){ //オプションタグを連続して書き換える for ( i=1; i<5; i++ ){ //選択分岐 switch (document.selbox.unit.selectedIndex){ case 0: document.selbox.bu.options[i].text="";break; case 1: document.selbox.bu.options[i].text=group1_list[i];break; case 2: document.selbox.bu.options[i].text=group2_list[i];break; case 3: document.selbox.bu.options[i].text=group3_list[i];break; } } document.selbox.bu.selectedIndex=0;} </script> ◆(2)のやりかた request.getParameter("unit")およびrequest.getParameter("group")で値を取得し、 画面への表示&ファイルへの保存を行っていますが、選択したgroup○○○の項目ではなく、空欄を取得しているようなのです・・・ どなたか知恵を貸してください。よろしくお願いします。

  • phpの値の受け渡し方法について

    b.phpの <dl> <form action='a.php' method='post'> <dt>生年月日</dt> <dd> <select name="Y"> <?php $start = 1920; //始まりの年 $end = 2020; //終わりの年 $select = 2000; //最初に選択された状態で表示したい年 for ($i=$start;$i<=$end;$i++){ if($i==$select){ echo "<option value=\"$i\" selected=\"selected\">$i</option>\n"; }else{ echo "<option value=\"$i\">$i</option>\n"; } } ?> </select> 年 <select name="M"> <?php for ($i=1;$i<=12;$i++){ echo "<option value=\"$i\">$i</option>\n"; } ?> </select> 月 <select name="D"> <?php for ($i=1;$i<=31;$i++){ echo "<option value=\"$i\">$i</option>\n"; } ?> </select> 日 </dd> </dl> <input type="submit" value="送信する" /> </form> というコードで取得した生年月日をa.phpに渡し、表示させます。 a.phpファイルで <?php print('誕生日は:' . ($_REQUEST['Y']. '年',ENT_QUOTES)); print(($_REQUEST['M']. '月',ENT_QUOTES)); print(($_REQUEST['D']. '日',ENT_QUOTES)); ?> と、コードを入力しましたら、 誕生日は:1985年1月31日 という値を受け取り、ブラウザ上で表示することはできたのですが、他のコードで表示する方法はないのかと考えております。 もし、他のコードで表示できる方法がありましたらぜひ教えてください。お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう