• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プルダウンの値をphpファイルへ渡したい)

プルダウンの値をphpファイルへ渡したい

このQ&Aのポイント
  • プルダウンの値をphpファイルへ渡す方法について質問です。現在、作成中のHPでは、データ取得をphpで行い表示をしています。しかし、プルダウンの値を渡す処理がうまくできず、困っています。どこを修正すればよいのか教えてください。
  • HPの作成中において、データ取得をphpで行っていますが、プルダウンの値をphpファイルへ渡す方法がわかりません。現在、b.phpでプルダウンを選択し、その値をtest.phpへ渡したいのですが、うまくできません。どのように修正すればよいのでしょうか。
  • プルダウンの値をphpファイルへ渡す方法についてご教授願いたいです。現在、作成中のHPでは、データ取得をphpで行い表示していますが、プルダウンの値を選択した際に、その値を他のphpファイルへ渡す方法がわかりません。どのような処理が必要なのでしょうか。

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

  • ベストアンサー
  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.5

>Array ( [test] => [testselect] => い ) ですから、testに値が入っていませんね。 $a = @$_POST["test"]; としても、testに値がないので、表示されません。 test.value = testform.testselect[testform.testselect.selectedIndex].value; はまだ残っているんですよね? 単純に「い」だけを取り出したいなら、testに入れなくても セレクトボックスの値を取り出せばいいと思うのですが。 【b.php】 <SCRIPT language="JavaScript"> function testphp(){ try{ with(document.testform){ action="http://test/test.php"; method="POST"; submit(); } } catch(e) { alert("エラーは " + e.description + " です。"); } } </SCRIPT><form name="testform"> <select name="testselect" onchange="testphp()"> <option value="あ">結果1</option> <option value="い">結果2</option> <option value="う">結果3</option> <option value="え">結果4</option> <option value="お">結果5</option> </select> </form> 【test.php】 <?php //変数処理 $a = $_POST["testselect"]; print "渡された値:".$a; exit; ?>

ayapama
質問者

お礼

何度も、ご回答いただき本当にありがとうございます。 >単純に「い」だけを取り出したいなら、testに入れなくても >セレクトボックスの値を取り出せばいいと思うのですが。 はい、その通りです。 javaの中で、testに変換しなくても、phpの $_POST["testselect"]; とするだけで、値がとれるんですね。 その部分が理解できていませんでした。 ご回答いただいたスクリプトを使用させていただいた結果、 きちんと「い」の値が表示されました。 長時間、お付き合いいただき、本当にありがとうございました。

その他の回答 (4)

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.4

私のほうでは、正常に「い」と表示されます。 最新のソースをコピーしてテストしましたが、 正常にできています。 提示されたソースで試されたのですか? test.phpに print_r($_POST); と記載して、POSTがどうなっているか調べてください。

ayapama
質問者

補足

何度も、申し訳ありません。 【test.php】 <?php //変数処理 $a = @$_POST["test"]; print_r($_POST); print "<br />渡された値:".$a; ?> 結果: Array ( [test] => [testselect] => い ) 渡された値: なぜか、$aが出力されません。 ここの記入が間違っているのでしょうか。

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.3

test.value = testform.testselect[testform.testselect.selectedindex].value; を test.value = testform.testselect[testform.testselect.selectedIndex].value; に変更することで値を取得できるのではないでしょうか。 selectedindex → selectedIndex testは設定されていないし、onchangeの場所も悪いです。 testをhiddenで設定し、onchangeは、selectで指定するべきです。 <form name="testform"> <input type="hidden" name="test"> <select name="testselect" onchange="testphp()"> <option value="あ">結果1</option> <option value="い">結果2</option> <option value="う">結果3</option> <option value="え">結果4</option> <option value="お">結果5</option> </select> </form> としてみてください。 testselectで指定された値をtestに入れても、同じ値が入るだけので、 なぜそうしたいかは不明ですが、参考までに。

ayapama
質問者

お礼

mikemike7様 ご回答ありがとうございます。 >selectedindex → selectedIndex >testは設定されていないし、onchangeの場所も悪いです。 >testをhiddenで設定し、onchangeは、selectで指定するべきです。 大文字、小文字をきちんと見れていませんでした。 また、onchangeも間違えて設定していたようです。 ご指摘ありがとうございます。 <input type="hidden"~> で選択データを取得できる事を理解できていませんでした。 そのため、javaを利用しないとできないと思い込んでいた為、 変なスクリプトを作成してしまいました。 一度、mikemike7様のスクリプトを利用して、 試してみたいと思います。

ayapama
質問者

補足

再度、質問させて下さい。 <input type~>を記入すると、javaで test.value = testform.testselect[testform.testselect.selectedIndex].value; を記入しなくても、test.phpのPOSTに渡されることは分かりました。 mikemike7様のスクリプトをもとに、再度試してみたのですが test.phpが表示されることが確認できましたが、 プルダウンで選択した値が表示されません。 結果2を選択したら、「渡された値:い」と表示されるはずでしたが 「渡された値:」しか表示されませんでした。 <input type="hidden" name="test">のvalue値に何か いれなければならないのでしょうか。 【スクリプト】 <SCRIPT language="JavaScript"> function testphp(){ try{ with(document.testform){ action="http://test/test.php"; test.value = testform.testselect[testform.testselect.selectedIndex].value; method="POST"; submit(); } } catch(e) { alert("エラーは " + e.description + " です。"); } } </SCRIPT><form name="testform"> <input type="hidden" name="test"> <select name="testselect" onchange="testphp()"> <option value="あ">結果1</option> <option value="い">結果2</option> <option value="う">結果3</option> <option value="え">結果4</option> <option value="お">結果5</option> </select> </form> 何度も申し訳ありませんが、ご回答の程 宜しくお願い致します。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ちょっと意味がわからないのですが・・・ a.phpからb.phpにはセッションでデータを渡せば、test.php に引き継げませんか? (actionの書き方が別のサイトに飛ばすように見えるので違うのかな?) あと、javascriptで、actionやらmethodやらかいていますが、 最初からformに書かない理由があるのでしょうか? 正直今のソースを見る限り無意味ですね。 formにonchangeを設定していますが、selectに設定してください。

ayapama
質問者

お礼

yambejp様 ご回答ありがとうございます。 <input type="hidden"~> で選択データを取得できる事を理解できていませんでした。 そのため、javaを利用しないとできないと思い込んでいた為、 変なスクリプトを作成してしまいました。 <input type="hidden"~>で、試してみたいと思います。 >formにonchangeを設定していますが、selectに設定してください。 こちらも、間違えて設定していたようです。 ご指摘ありがとうございます。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

test.value = ~~ となっていますが、相当する要素がHTMLに無いのではないでしょうか? <input type="hidden" ~~ などで用意しておくとかでどうでしょうか? あとは… document.testform testform.testselect などの、名前で要素を取得しているようですが、ブラウザによっては対応していない可能性も…

ayapama
質問者

お礼

fujillin様 ご回答ありがとうございます。 <input type="hidden" ~~ で選択データを取得できる事を理解できていませんでした。 そのため、javaを利用しないとできないと思い込んでいた為、 変なスクリプトを作成してしまいました。 <input type="hidden" ~~ を利用して試してみたいと思います。 >document.testform >testform.testselect >などの、名前で要素を取得しているようですが、ブラウザによっては対応していない可能性も… ブラウザで対応していない可能性があるのですね。 複数ブラウザでテストしてみたいと思います。 情報、ありがとうございました。

関連するQ&A