いつもお世話になっております。
現在、作成中の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で質問しましょう!
似たような質問が見つかりました
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リストボックス内の重複したも...
-
【JS】selectでchangeした時の...
-
javascriptでセレクトボックス...
-
VBScriptでHTMLのセレクトボッ...
-
ラジオボタンとプルダウンを連...
-
サイト内の物件を複数の検索条...
-
ラジオボタンの値が取得できな...
-
時間の選択に関して
-
全てのselect要素をデフォルト...
-
【javascript】連想配列からセ...
-
セレクトボックスで配列を呼び...
-
プルダウンで選択したCGIを動か...
-
javascriptでセルを矩形で選択する
-
javascriptだけでドロップダウ...
-
プルダウンの値によって活性・...
-
Selectボックスの一覧表示方法
-
select要素のvalueを配列で取得...
-
select option value が IE だ...
-
document.writeでセレクトボッ...
-
プルダウンのoptionの表示・非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
全てのselect要素をデフォルト...
-
【JS】selectでchangeした時の...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
複数のプルダウンを1つにまとめ...
-
コードレビューをお願いします。
-
JavaScriptで<select>の<option...
-
<input>の選択肢をプルダウンメ...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
VBScriptでHTMLのセレクトボッ...
-
ラジオボタンとプルダウンを連...
-
javascriptで合計金額を算出し...
-
中百舌鳥駅と深井駅を入れ替え...
-
同じ名前のセレクトがある場合...
-
セレクトボックスで配列を呼び...
-
今日の日付を自動的にセレクト...
-
プルダウンの値によって活性・...
-
サイト内の物件を複数の検索条...
おすすめ情報