• ベストアンサー

【JavaScript】ラジオボタンにより、formのaction内容

【JavaScript】ラジオボタンにより、formのaction内容を変更したいのですが・・・。 どのラジオボタン(ここでは『A』と『B』とします)をチェックされたかにより、 <form action="(ここの部分)"> (ここの部分)と書かれたformのactionの内容を変えたいのです。 例) 『A』のラジオボタンをチェック → <form action="a.php">になる 『B』のラジオボタンをチェック → <form action="b.php">になる このようにしたいのです。 どうかよろしくお願いします。

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

  • ベストアンサー
  • pawn0105
  • ベストアンサー率100% (1/1)
回答No.1

function gamenchange(){ if (document.myform.radio01.value=="1"){ document.myform.action="a.php"; }else{ document.myform.action="b.php"; } document.myform.submit(); } ---------------------- <form action="#" method="post"> <input type="radio" name="radio01" value="1">ラジオボタンA <input type="radio" name="radio01" value="2">ラジオボタンB <input type="submit" onclick="gamenchange()"> </form> ---------------------- submitボタンを押したときにfunctionでaction先をセットする・・・のはいかがでしょう?

koucha714
質問者

お礼

早速の回答ありがとうございます。 お蔭様で上手くページを分岐させることが出来ました。 実はheaderやinclude等を使おうともしていたのですが、 それだとpostの内容を渡すことが出来なかったもので・・・。 助かりました、本当にありがとうございました!

その他の回答 (1)

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

onsubmitで処理するのが吉 <script> function check(f){ var r=f.elements["r"]; var flg=false; var list={"A":"a.php","B":"b.php","C":"c.php"}; for(var i=0;i<r.length;i++){ if(r[i].checked){ f.action=list[r[i].value]; flg=true; break; } } if(!flg) alert("チェックしてね") return flg; } </script> <form onSubmit="return check(this)"> <input type="radio" name="r" value="A">A <input type="radio" name="r" value="B">B <input type="radio" name="r" value="C">C <input type="submit" value="go"> </form>

koucha714
質問者

お礼

毎度毎度、ありがとうございます。 今回は、早く回答してくださった方にベストアンサーをつけさせていただきました。 yambejpさんのコードでも動作確認が出来ました。 ありがとうございました。

関連するQ&A

  • javascript ラジオボタン

    javascriptのことで質問させてください。 よろしくおねがいします。 簡単なフォームをテーブルで作成しています。 例えばの例でお願いします。 <form action="" method="post"> <table> <tr> <td>表示/非表示<td> <td><input type="radio" value="1">非表示 <input type="radio" value="2">表示<td> <tr> <!--ここから表示/非表示部分--> <tr> <td>テキスト<td> <td><input type="text"><td> <tr> <!--ここまで表示/非表示部分--> </table> </form> 上記のようなフォームがあったとします。 PHPを使用していまして、 『hoge.html?str=値』 がアドレスとします。 $str=$_GET['str']; $str=1 の時は、はじめは表示 $str=2 の時は、はじめは非表示 $str="" の時は、はじめは非表示 という感じの内容でラジオボタン選択すると表示/非表示されると言うものを作成したいと思っています。 説明がわかりにくいと思いますがどうぞよろしくお願いします。

  • formの中で別のactionをもったsubmitボタンの設置。

    formの中で別のactionをもったsubmitボタンの設置。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>sample</title> <script language="JavaScript" type="text/javascript"> <!-- //<クリックした時に実行される関数> //*** 確認画面A function func1(form){ document.form1.check[].value =form.check[].value; document.form1.submit(); } //*** 確認画面B function func2(form){ document.form2.check[].value =form.check[].value; document.form2.submit(); } //--> </script> </head> <body class="index"> <form enctype="multipart/form-data"> <input type="check" name="test[]" value="0">0 <input type="check" name="test[]" value="1">1 <input type="check" name="test[]" value="2">2 <input type="button" onClick="func2(this.form)" value="確認B"> <input type="button" onClick="func1(this.form)" value="確認A"> </form> <!-- sousin.php画面へ --> <form method="post" name="form1" action="sousin.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> <!--- text.php画面へ ---> <form method="post" name="form2" action="text.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> </body> </html> 上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。 チェックボックスで何と何がチェックされたかを渡したいのですが、エラーが発生します。 おそらくjavascript内の構文でcheck[]と記述してるからだと思いますが、 どのようにすれば受け渡すことができるのでしょうか。 checkのみにすると1つの値しか渡せません。

    • ベストアンサー
    • HTML
  • [javaScript] form action

    PHPとjavascriptで検索(別ページ)→検索結果表示(test.php)→指定リンククリック(test.php)→チェックボックスの値を親ウィンドウ(test.php)から子ウィンドウ(aaa.php、bbb.php)へ渡し、更新→親ウィンドウ(test.php)に反映→検索ボタン押下で再検索(test.php)という流れのプログラムを書いています。 親ウィンドウ(test.php)に反映までは実装できましたが、その後検索でsubmitすると、test.phpではなくaaa.phpかbbb.phpへ遷移してしまいます。 色々試してみましたがどうしてもわからず、どなたかご教授いただけませんでしょうか。 よろしくお願い致します。 [親ウィンドウ] function setDown(type) { window.open("", "test") ; if(type == 'aaa') { window.document.fm.action = "aaa.php"; } else if(type == 'bbb') { window.document.fm.action = "bbb.php"; } window.document.fm.target = "test"; window.document.fm.method = "POST"; window.document.fm.submit(); } <form action="index.php" method="post" name="fm"> <a href="javascript:void(0)" onClick="setDown('aaa');"return false>aaa指定</a> <div id="aaaDis"></div> <a href="javascript:void(0)" onClick="setDown('bbb');"return false>bbb指定</a> <div id="bbbDis"></div> <input type="text" name="keyword"> <input type="submit" name="search" value="検索"> </form> [子ウィンドウ aaa.php] if($_REQUEST["mode"] == "set") { foreach($_REQUEST["sample"] as $num => $val) { $addName .= $Func -> GetGenreName($val) . ","; $addNo .= $val. ","; } $addName = rtrim($addName ,","); $addNo = rtrim($addNo ,","); <script type="text/javascript"> <!-- var addName = '<?php echo $addName ; ?>'; var addNo = '<?php echo $addNo ; ?>'; var sampleName = addName.split(","); var sampleNo = addNo.split(","); if(sampleNo) { window.opener.document.getElementById('aaaDis').innerHTML = ""; for (var i in sampleNo){ window.opener.document.getElementById('aaaDis').innerHTML += '<input type="checkbox" name="sample[]" value="'+sampleNo[i]+'" checked>&nbsp;'+sampleName[i]; } } window.close(); // --> </script> } <form action="aaa.php" method="post"> <input type="hidden" name="mode" value="set"> <input type="submit" value="設定"> <input name="sample[]" TYPE="checkbox" VALUE="1">1111 ・ ・ ・ </form>

  • FORMで送信ボタンと戻るボタンを2つつけてそれぞれ遷移先を変えたい

       以下のような画面を作りたいのですが↓ -------------------------------------------------------------------------------- ● a.php (ユーザ情報入力画面) ※フォームに入力する画面    <FORM method="POST" action="b.php">   <INPUT type="text" name="mail">   <INPUT type="submit" name="submit" value="確認">  </FORM> ● b.php (ユーザ情報入力確認画面)※フォームに入力された値を表示する画面  <FORM method="POST" action="c.php">   <!-- ここには、フォームに入力された値を表示する -->   <INPUT type="submit" name="submit" value="登録"> // c.php に遷移する   <INPUT type="submit" name="submit" value="戻る"> // a.php に戻る  </FORM> ● c.php (完了画面) -------------------------------------------------------------------------------- b.php について質問なのですが、 b.phpにおいて、登録ボタンと戻るボタンを2つつけて、 それぞれ遷移先を変えたいのですが、どうすればいいんでしょうか・・・? <FORM method="POST" action="c.php">と書いてしまうと、 戻るボタンを押しても戻らずに、c.phpに遷移してしまいますよね?? こういう場合ってJavaScriptとかで遷移先を指定するんですか・・? もしそうでしたら、JavaScriptがよくわからないので できればサンプルコード示していただけると助かります・・・。   

  • ラジオボタンを使いphpからjavascriptへ

    現在、ラジオボタンを使い、phpからjavascriptへ変数を持っていくプログラムを組もうと考えているのですが、なかなかうまくいきません。 まず、PHP側のデータ(test.phpという名前で)でラジオボタンを作成し、その選択したボタンの内容をjavascriptへ(test.htmlという名前で)送り、その選択した変数の内容をjavascript内で使いたいのです。 php→phpは簡単にできたのですが、どうにもjavascriptに変数を送ることができないので、もしかして仕様で無理なのかな?と思い始めました。 上記の事柄が仕様的に無理かどうか知りたいです。また、もし可能ならば何か特別な記述などが必要でしょうか?厚かましいでしょうが、簡単なサンプルを記述してもらえればうれしいです(現在つまっているのでヒントだけでもほしいです)

    • ベストアンサー
    • PHP
  • 1つのformで複数のactionをボタン1つで

    質問です。 1つのformで複数のactionを1つの送信ボタンで実行したいと思っています。 やりたいことは、1つのframeから他の2つのframeにデータを渡すことです。 フレームは以下のように3つに分かれています。 <frameset cols="60%, 40%"> <frame name="test1" src="xxxx.php"> <frameset rows="50%, 50%"> <frame name="test2" src="yyyy.php"> <frame name="test3" src="zzzz.php"> </frameset> </frameset> xxxx.php内のデータをyyyy.php, zzzzphpの2つに渡したいです。 <script language="javascript"> function send(){   document.form1.target = "test2";   document.form1.action = "yyyy.php";   document.form1.submit();   document.form1.target = "test3";   document.form1.action = "zzzz.php";   document.form1.submit(); } </script> <form name ="form1" method="POST" action="yyyy.php"> <input type="hidden" name="string" value="string" > <input type="button" value="送信" onClick="send()"> </form> 現在、上記のように試したり、過去の質問【一つのformから複数のactionを実行】url:http://okwave.jp/qa/q4234502.htmlを参考にしていますがうまくいきません。 わかる方アドバイスお願い致します。

  • formとactionとmethodについて

    初心者的な質問で申し訳ないのですが、 formを複数作りたい場合、メソッドをpost/get別々に指定したり、actionを別々のリンクを指定とかって出来たりするんでしょうか。 <form action="next.php" method="post">inputとか</form> <form action="prev.tpl" method="get">hiddenとか</form> 見たいな感じで、それぞれが別々、若しくは <form action="next.php" method="post">inputとか</form> <from action="next.php" method="get">inputとか</form> 見たいな感じで、リンク先は一緒だけどメソッドは違う等の指定方法を教えていただければと思います。 もし、指定出来ることは出来るが、javascriptで制御しなけらばならない等あるのでしたら、 その記述例等も一緒に教えて頂けると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • radioボタン変更時にActionを呼ぶ方法

    strutsで開発しているのですが、radioボタンやプルダウンの内容を変更した際に、DBからデータを取得して動的に内容を表示するということをやろうとしています。 onclickからjavascriptを呼ぶというやりかたを思いついたのですが、javascriptからアクションを呼ぶというやり方がよく分からず困っています。それとも他に良い方法があるでしょうか? 教えてください。

    • ベストアンサー
    • Java
  • セレクトボックスのvalue値でactionを変更

    いつもお世話になっております。 メニュー(セレクトボックス)のvalue値によってフォームのactionの内容を変更する方法を探しています。 【JavaScript】ラジオボタンにより、formのaction内容を変更 http://okwave.jp/qa/q6003560.html という質問を見つけ、こちらのラジオボタンをセレクトボックスに変更したのですが、動作しません。 javascriptを変更しなくてはいけないのだとは思うのですが、まったくの素人のため、検討もつかず、相談に伺いました。 <script type="text/javascript"> <!-- function check(f){ var r=f.elements["aaa"]; var flg=false; var list={"A":"aaa.php","B":"bbb.php","C":"ccc.php"}; for(var i=0;i<r.length;i++){ if(r[i].checked){ f.action=list[r[i].value]; flg=true; break; } } } //--> </script> </head> <body> <form action="" onSubmit="return check(this)"> <input name="key" type="text" value=""> <select name="aaa"> <option value="" selected>Category</option> <option value="A">AAA</option> <option value="B">BBB</option> <option value="C">CCC</option> </select> <input type="button" value="Go"> </form> </body> </html> お分かりになる方、教えていただけると助かります。 よろしくお願いいたします。

  • 複数のラジオボタンのチェック

    複数のラジオボタンが全て選択されているかどうかのチェックのJavaScriptをすっきりした形で書くのは、どうしたらいいでしょうか? 下記のようですと、ダラダラと記述するようになってしまいます。 どなたかご教授ください。 --------------------------------------- <script type="text/javascript"> function insert_onClick() { j=0; for (i=0 ;i < document.F1.a11.length ; i++){ if (document.F1.a11[i].checked) { j=1; } } } </script> <form action="check.php" name="F1" onsubmit="return insert_onClick()"> 各valueは0~4まであります <input type="radio" name="a11" value="0"> <input type="radio" name="a12" value="0"> <input type="radio" name="a21" value="0"> <input type="radio" name="a22" value="0"> <input type="radio" name="b11" value="0"> <input type="radio" name="b12" value="0"> <input type="radio" name="b21" value="0"> <input type="radio" name="b22" value="0"> ---------------------------------------

専門家に質問してみよう