
いつもお世話になっております。
現在、作成中のHPですが、データ取得をphpで行い表示をしています。
(1)a.phpでプルダウンのデータを取得し、b.phpで表示。
(2)b.phpでプルダウンを選択し、その値をtest.phpへ渡す。
(2)で、プルダウンの値を渡す処理がどうしてもうまくできず、
とても困っています。
どこを修正すればよいのかご教授願いたいのですが・・・。
スクリプトは下記の通りです。
-------------------------------------------------------
【b.php】
<html>
<head>
<title>テスト</title>
</head>
<body>
<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" onchange="testphp()">
<select name="testselect">
<option value="あ">結果1</option>
<option value="い">結果2</option>
<option value="う">結果3</option>
<option value="え">結果4</option>
<option value="お">結果5</option>
</select>
</form>
</body>
</html>
【test.php】
<?php
//変数処理
$a = @$_POST["test"];
print "渡された値:".$a;
exit;
?>
-------------------------------------------------
どうぞ、宜しくお願い致します。
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;
?>
何度も、ご回答いただき本当にありがとうございます。
>単純に「い」だけを取り出したいなら、testに入れなくても
>セレクトボックスの値を取り出せばいいと思うのですが。
はい、その通りです。
javaの中で、testに変換しなくても、phpの $_POST["testselect"];
とするだけで、値がとれるんですね。
その部分が理解できていませんでした。
ご回答いただいたスクリプトを使用させていただいた結果、
きちんと「い」の値が表示されました。
長時間、お付き合いいただき、本当にありがとうございました。
No.4
- 回答日時:
私のほうでは、正常に「い」と表示されます。
最新のソースをコピーしてテストしましたが、
正常にできています。
提示されたソースで試されたのですか?
test.phpに
print_r($_POST);
と記載して、POSTがどうなっているか調べてください。
この回答への補足
何度も、申し訳ありません。
【test.php】
<?php
//変数処理
$a = @$_POST["test"];
print_r($_POST);
print "<br />渡された値:".$a;
?>
結果:
Array ( [test] => [testselect] => い )
渡された値:
なぜか、$aが出力されません。
ここの記入が間違っているのでしょうか。
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に入れても、同じ値が入るだけので、
なぜそうしたいかは不明ですが、参考までに。
この回答への補足
再度、質問させて下さい。
<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>
何度も申し訳ありませんが、ご回答の程
宜しくお願い致します。
mikemike7様
ご回答ありがとうございます。
>selectedindex → selectedIndex
>testは設定されていないし、onchangeの場所も悪いです。
>testをhiddenで設定し、onchangeは、selectで指定するべきです。
大文字、小文字をきちんと見れていませんでした。
また、onchangeも間違えて設定していたようです。
ご指摘ありがとうございます。
<input type="hidden"~>
で選択データを取得できる事を理解できていませんでした。
そのため、javaを利用しないとできないと思い込んでいた為、
変なスクリプトを作成してしまいました。
一度、mikemike7様のスクリプトを利用して、
試してみたいと思います。
No.2
- 回答日時:
ちょっと意味がわからないのですが・・・
a.phpからb.phpにはセッションでデータを渡せば、test.php
に引き継げませんか?
(actionの書き方が別のサイトに飛ばすように見えるので違うのかな?)
あと、javascriptで、actionやらmethodやらかいていますが、
最初からformに書かない理由があるのでしょうか?
正直今のソースを見る限り無意味ですね。
formにonchangeを設定していますが、selectに設定してください。
yambejp様
ご回答ありがとうございます。
<input type="hidden"~>
で選択データを取得できる事を理解できていませんでした。
そのため、javaを利用しないとできないと思い込んでいた為、
変なスクリプトを作成してしまいました。
<input type="hidden"~>で、試してみたいと思います。
>formにonchangeを設定していますが、selectに設定してください。
こちらも、間違えて設定していたようです。
ご指摘ありがとうございます。
No.1
- 回答日時:
test.value = ~~
となっていますが、相当する要素がHTMLに無いのではないでしょうか?
<input type="hidden" ~~
などで用意しておくとかでどうでしょうか?
あとは…
document.testform
testform.testselect
などの、名前で要素を取得しているようですが、ブラウザによっては対応していない可能性も…
fujillin様
ご回答ありがとうございます。
<input type="hidden" ~~
で選択データを取得できる事を理解できていませんでした。
そのため、javaを利用しないとできないと思い込んでいた為、
変なスクリプトを作成してしまいました。
<input type="hidden" ~~ を利用して試してみたいと思います。
>document.testform
>testform.testselect
>などの、名前で要素を取得しているようですが、ブラウザによっては対応していない可能性も…
ブラウザで対応していない可能性があるのですね。
複数ブラウザでテストしてみたいと思います。
情報、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンで選択した項目にあ...
-
セレクトメニューの値をクッキ...
-
同じ名前のセレクトがある場合...
-
<input>の選択肢をプルダウンメ...
-
javascript-変数がよくわかりま...
-
<select> をmultiple にしてい...
-
2つのプルダウンメニューで、同...
-
javascriptでセレクトボックス...
-
VBScriptでHTMLのセレクトボッ...
-
return trueとreturn falseの用...
-
Selectボックスの幅を自動で広...
-
onchangeイベントを強制的に発...
-
ラジオボタンにタブインデック...
-
ブラウザの外にあるマウスの情...
-
TextBoxに半角数字以外を入れた...
-
【掲示板の機能】投稿時にサイ...
-
RegularExpressionValidatorの...
-
【javascript・PHP】プルダウン...
-
至急!GetElementById でtdの...
-
javascriptで画像をテーブルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<input>の選択肢をプルダウンメ...
-
javascriptでoptionタグを削除...
-
プルダウン選択を変更すると、...
-
2段階プルダウンで1段階目の選...
-
セレクトボックスで配列を呼び...
-
ラジオボタンとプルダウンを連...
-
【JavaScript】プルダウンで数...
-
スマホのフォームでのselect複...
-
二つのセレクトボックス間での...
-
3つの連動したプルダウンメニュ...
-
プルダウンを選択していないと...
-
2つのプルダウンメニューで、同...
-
selectを変更不可にしたい
-
Selectボックスの一覧表示方法
-
webページの一部のみの更新につ...
-
<select> をmultiple にしてい...
-
同じ名前のセレクトがある場合...
-
javascriptでセレクトボックス...
-
コードレビューをお願いします。
-
selectタグで日付を生成
おすすめ情報