• ベストアンサー

PHP プルダウンを選んだ瞬間に処理開始

PHPで、フォームのプルダウンを選んだ時、たとえば、「1月」を選んだ時に処理を開始し、選択されている1月のデータだけをデータベースからとってきて表示したいです。 <input type="submit" ~> の送信ボタンで送信するわけではなく、プルダウンを選んだ瞬間に処理開始したいので、$_POST[]では取得できませんでした。 PHPでプルダウンを選んだ瞬間にプルダウンのデータを送信する方法があれば教えてください。 PHPは現在勉強中の超初心者、javascriptはjQueryなら少々書ける程度です。 よろしくお願いいたします。

  • bfkk
  • お礼率88% (31/35)
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • ma-tsu02
  • ベストアンサー率29% (30/101)
回答No.1

javasriptでプルダウンを変更したらsubmitする処理をしてあげれば良いと思います。 http://tantanu.minibird.jp/forum/topic.php?id=77

bfkk
質問者

お礼

素早いご回答ありがとうございます。 教えていただいたページは見つけていて、試してみると処理開始はしたのですがプルダウンが選択前のものに戻ってしまい、思っていた処理結果がでませんでした・・・ でも、他のことが原因かもしれません。 この方法で色々試してみます。ありがとうございました!

bfkk
質問者

補足

その後、この方法でできました! プルダウンが選択前のものに戻るのは普通の動きだったみたいなので、javascriptで選択した値にセットし直す処理を入れました。 処理結果が違ったのは、また違う理由で簡単なミスでした。 ありがとうございました。

その他の回答 (1)

noname#249320
noname#249320
回答No.2

「HierSelect」ですね。PHPではなくjavascriptのお仕事になります。jQueryを書けるということなので、jQueryでの実装方法を案内したブログ記事をご参考ください。

参考URL:
http://yuu.1000quu.com/jquery_hierselect
bfkk
質問者

お礼

ありがとうございます。 最初は私も、jQueryで処理させていました…が、その結果の値をのちにphpで使うので、phpでできないのかなあと思っていました。 jQueryで取得した値をphpに格納できたらいいのですが、それもうまくいかず。。やり方も含めいろいろ悩んでいます。

関連するQ&A

  • フォームから受け取ったデータを変数に/PHP

    入力フォームからデータを送信し、受け取ります。 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> この時に受けったデータが、「りんご」だとして この「りんご」を変数にしたいです。 ↓ <?php $keyword = "りんご"; ?> このようにするには、 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> の後にどのような処理をすればよいでしょうか? または初めから「$keyword」としてフォームからデータを送ることはできるのでしょうか? 何卒ご指導の程よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP の自動で飛ぶ処理

    A.php ------------------------------------------------------------- ~省略~ print "<form action='./B.php' method='PSOT'>"; print "<input type='text' name='a_syori' value=''>"; print "<input type='submit' value='送信'>"; print "</form>"; -------------------------------------------------------------- B.php ~省略~ $b = $_POST['a_syori']; $b = $b * 2; -------------------------------------------------------------- B.phpでA.phpから送信された数値を2倍して すぐにまたA.phpに戻す という動作を行いたいのですが この場合、A.phpと同じ動作(formを作ってsubmitで送信)でしか A.phpには戻らないのでしょうか? 見た目ではB.phpでは表示させずにA.phpのみしか表示させたくありません。 今回はPHPで処理を行いたいと思っています。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP処理実行後のページの遷移について

    現在、新規情報登録画面の作成を行っています。 PHPで、データベースにインサート処理後、成功したら他のページへ遷移するという処理を行いたいのですが、PHP側の処理が実行されるとページの遷移が行われず、action='遷移ページ指定'したらインサートが実行されません。 JavascriptとPHPともにまだ学習し始めたばかりの初心者で、わかりにくい質問ですが回答のほうよろしくお願いします。 <処理の流れ> 入力 ↓ 登録ボタン押す ↓ チェック ↓ チェック成功時→ページ遷移 チェック不成功時→ページ遷移なし <html> <head><title>新規登録</title> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.2");</script> </head> <body> <form method="post" action="form_ad_shinki_touroku2.php" name="formA" onsubmit="return AllCheck()"> <script type="text/javascript"> 動的入力フォーム追加機能、チェック機能など </script> <?php SQLの処理など ?> <input type="submit" name="tuika" value=" 登 録 "> <input type="button" onclick="addInput()" value="フォーム追加" /> <input type="button" name="back" value=" 戻 る " onClick="location.href='javascript:history.back();'"> </form> <body> <html>

  • 【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit

    【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit)の扱いについて どのカテゴリで質問しようか迷いましたがこちらで・・・。 今回は画像を使用して質問します。 今回はHTML(PHP使用)に関しての質問なのですが、 図にあるように、※1をクリックすると、その次のページにA,Bの情報がPOSTで次のページに送信されるようにしています。 ここで、※2にも同じように、A,Bの情報をPOSTで次のページに送信したいのですが、 何故かPOSTで送信されないみたいなのです。 どうにかして※2も※1と同じようにPOSTを送信したいのです。 別の質問サイトで、「押されたsubmitがどれかによって処理を分岐させる」と回答が帰ってきたのですが、javascript無しのPHPだけで以上のことができるのでしょうか? なお、HTMLのFORMタグは入れ子にしていませんし、 POST受け取り先の.phpも問題はありません。 以下、HTMLのform、input部分のソース ※1のフォームタグ内容 <form action="search.php" method="post" name ="search"> ※1ボタンの内容 <input type="submit" name="searching" value="再検索"> ※2のフォームタグ内容 <form action="result.php" method="post" name ="res"> ※2ボタンの内容 <input type="submit" name="result" value="結果表示"> まとめとして、 押されたsubmitがどれかによって処理を分岐させる方法を、 javascriptではなく、PHPのみで実装させたいのです。 どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとJavaScriptで...

    PHPで以下のようなリンクを生成し、 <form name="hoge" method="post"> <input type="hidden" name="hogehoge"> </form> <a href="javascript:void(0)" onClick="submit('0')">あ</a> <a href="javascript:void(0)" onClick="submit('1')">い</a> <a href="javascript:void(0)" onClick="submit('2')">う</a> <a href="javascript:void(0)" onClick="submit('3')">え</a> <a href="javascript:void(0)" onClick="submit('4')">お</a> POSTで受け取ったデータを再びPHPで使用したいのですが、 (同一ページ内で) 色々調べてみたのですが、いまいちわかりません。 JavaScriptの部分をどのようにしたらよいか、また根本的に間違っていたらどのように変えればよいか、 教えてください。 m(_ _)m

    • ベストアンサー
    • PHP
  • PHPの処理結果をjavascriptで利用する方法

    既に似たような質問も出ていそうで恐縮ですが(一通り目を通したですが、目的とするものは見つけられませんでした)、 PHPとjavascriptのやりとりについて教えていただければ幸いです。 データをフォームなどから受け取る→サーバー側(php)で処理→ 処理した結果の変数をjavascript用の変数として扱うといったこと がしたいのですが、うまくできません。 実際には以下のような形で書いて失敗してしまいました。。。 /*xxx.php*/ <html> <head> <?php $result = $_POST["sentence"]; ?> <script language="javascript"> result = "<?=$result?>"; </script> <script src="xxx.js" type="text/javascript"language="javascript"></script> </head> <body> <form id="sample"> <input type="text" name="sentence"> <input type="submit" value="送信"> </form> </body> </html> /*xxx.js*/ /*xxx.js*/ window.onload = function(){ document.getElementById("sample").onsubmit = function() { var req = createHttpRequest(); req.onreadystatechange = function(){ if(req.readyState==4 && req.status == 200){ alert(result); //PHPの結果を待った後を想定した何らかの処理      //ここでresultを使いたいが、サーバー側への送信前      //の値が入っているだけでonsubmitが反映されていない。 } } req.open("POST","./xxx.php",false); //<-formでくくられた<input type="text">等の部分は反映されない。 req.send(""); } } function createHttpRequest(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); } else if(window.ActiveObject){ try{ return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { return null; } } } } 私なりに調べたところ 1.PHPとjavascriptは別の所で動作しているので受け渡しは基本不可能 2.PHP側で動的に書き出すことで見せかけることはできる。 var test = <?=$test?>等 3.XmlHttpRequestでphpの処理を結果を待って、変数を利用しようと思ったが、 <form id="form"> <input type="text" name="sentence"> <input type="submit" value="送信"> </form> といった場合に$_POST["sentence"]に値を入れる方法が不明。 また、 multipart/form-dataによる送信など方法が複雑。 responseTextには<html>から</html>まで格納されてしまった。 処理項目ごとに表示用に別にPHPファイル作成だと困る。 4.<form action = "xxx.php" onsubmit=関数名>とすると、 onsubmitで指定した関数が先に呼び出されてから、 xxx.phpの実行が行われるので、サーバー処理を待たずに javascript側が実行されてしまう。 といったことだけは分かりました。 しかし、どのように変更すればうまくいく(もしくは見せかける) ようになるのかがさっぱり分からなかったため、 質問させていただきました。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • プルダウンの値をphpファイルへ渡したい

    いつもお世話になっております。 現在、作成中の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; ?> ------------------------------------------------- どうぞ、宜しくお願い致します。

  • 【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit

    【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit)の扱いについて 【お詫び】 やたらと重く、送信ボタンを何度も押してしまい、同じ質問を何度も投稿した形になってしまい、大変申し訳ございませんでした。 それらの質問は全て削除させていただきました。 どのカテゴリで質問しようか迷いましたがこちらで・・・。 今回は画像を使用して質問します。 今回はHTML(PHP使用)に関しての質問なのですが、 図にあるように、※1をクリックすると、その次のページにA,Bの情報がPOSTで次のページに送信されるようにしています。 ここで、※2にも同じように、A,Bの情報をPOSTで次のページに送信したいのですが、 何故かPOSTで送信されないみたいなのです。 どうにかして※2も※1と同じようにPOSTを送信したいのです。 別の質問サイトで、「押されたsubmitがどれかによって処理を分岐させる」と回答が帰ってきたのですが、javascript無しのPHPだけで以上のことができるのでしょうか? なお、HTMLのFORMタグは入れ子にしていませんし、 POST受け取り先の.phpも問題はありません。 以下、HTMLのform、input部分のソース ※1のフォームタグ内容 <form action="search.php" method="post" name ="search"> ※1ボタンの内容 <input type="submit" name="searching" value="再検索"> ※2のフォームタグ内容 <form action="result.php" method="post" name ="res"> ※2ボタンの内容 <input type="submit" name="result" value="結果表示"> まとめとして、 押されたsubmitがどれかによって処理を分岐させる方法を、 javascriptではなく、PHPのみで実装させたいのです。 どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPリストボックス DB値取得関連

    PHPにてサイトを作っています 途中プルダウンのリストのデータを取得する際に リスト1を選択するとJavaScriptで同じURLへジャンプし、リスト1の値をPOSTし再表示で リスト1にひもづくデータをDBから読んでリスト2のないようにしています。 さらに同じようにリスト2を選択するとリスト1、リスト2にひもづくデータを金額として表示します。 これを行うことで<form>がJavaScriptに占有されてしまい リスト以外のテキストの実際にポストしたい入力データが<Form>で次ページへ飛ばせなくなりました。 リスト選択のリロード毎に全入力データをPOSTし変数に入れhiddenで別の<form>タグにいれて ましたが、 リスト未選択でリロードしない場合は値が取れず送信した際には値が飛ばせません。 構造イメージは以下です <form action="aaa.php" name="frm" method="post">  DBを読む1 <select name="zzz" onChange="document.forms['frm'].submit()" >     </select> </form> <form action="next.php" method="post">  <input type="hidden" name="aaa" value="<?php echo $aaa; ?>">  <input type="hidden" name="bbb" value="<?php echo $bbb; ?>">  ・・・・・・・ <input type="submit" value="送信"> </form> わかりにくくてすみませんが良い案があれば教えてください。

    • ベストアンサー
    • PHP
  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP

専門家に質問してみよう