値の保持についての質問

このQ&Aのポイント
  • submitボタンを使わずにデータの遷移がしたいと思っていますが、上手く行きません。値の保持方法について教えてください。
  • 現在、phpとjavascriptを使用してラジオボタンによるデータの受け渡しを試していますが、value値の保持方法が分かりません。どのように行えば良いでしょうか。
  • データ遷移をsubmitボタンではなくjavascriptで実現したいのですが、value値の保持方法が分かりません。どなたか教えていただけないでしょうか。
回答を見る
  • ベストアンサー

php + javascriptで値の保持

現在、ラジオボタンによるデータの受け渡しを調べているのですが submitボタンを使わずに、データ遷移がしたいと思い 色々やっているのですが上手く行きません。 これは実現可能なのでしょうか? <input type="radio" name="hoge" value="1" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check1; ?>> <input type="radio" name="hoge" value="2" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check2; ?>> <input type="radio" name="hoge" value="3" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check3; ?>> 上記のソースの様な感じでとりあえずやってみましたが、 「ボタンを押したら即移動」は可能なものの、value値の保持が javascript上でどうやったらいいか分かりません。 ※$check1~3は遷移後のchcked判定の変数です ※test関数においてのvalueを格納する処理が分かりません やはり無難にsubmitボタン+セッション関数等で構築した方が良いのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • kirin_f
  • ベストアンサー率51% (44/85)
回答No.1

location.hrefは移動するだけで、value値をもっていくわけではないです。 代わりにJavaScriptにsubmitボタンを押させるようにすれば、移動後のページに値を持っていくことができます。 <html> <body> <?php if(isset($_GET["hoge"]) && strlen($_GET["hoge"]) ) { $check1 =($_GET["hoge"]==1)? "checked" :null; $check2 =($_GET["hoge"]==2)? "checked" :null; $check3 =($_GET["hoge"]==3)? "checked" :null; ?> <script language="JavaScript"> <!-- test("<?php echo $_GET["hoge"]; ?>"); //--> </script> <?php } ?> <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" name="form"> <input type="radio" name="hoge" value="1" onclick="form.submit();" <?php echo $check1; ?>> <input type="radio" name="hoge" value="2" onclick="form.submit();" <?php echo $check2; ?>> <input type="radio" name="hoge" value="3" onclick="form.submit();" <?php echo $check3; ?>> </form> </body> </html>

gantz77
質問者

お礼

なるほど~ form.submit()という便利な構文があったんですよね! ありがとうございました!

関連するQ&A

  • PHPの囲みかた

    以下のPHPが動かない、画面が真っ白になってしまうのですがなぜでしょうか? また<?php ?>でPHPは囲みますが、一画面で何回も囲んでも構わないでしょうか? <input name="button" type="button" onclick="location.href='/abc.php'" value="abc"> <?php  print ('<input type="button" value="aaa" onClick="location.href='/aaa.php'">'); ?> <input type="button" value="bbb" onClick="location.href='/bbb.php'">

    • 締切済み
    • PHP
  • JavaScript+PHPでのボタンの値について

    お世話になります。現在下記のようなコードです。 #Html側 <script language="JavaScript"><!-- function send1() { document.Form1.submit(); } function send2() { document.Form2.submit(); } // --></script> <form name="Form1" action="tesuto1.php" > 中略 </form> <form name="Form2" action="tesuto2.php" > 中略 </form> <form> <input type="button" name="botan" value="送信" onClick="send1()"> </form> <form> <input type="button" name="botan" value="取消" onClick="send2()"> </form> <form> <input type="button" name="botan" value="確認" onClick="send1()"> </form> #PHP側 tesuto1.php echo "値は".@$_POST["botan"]."です"; という感じで、どのボタンがクリックされたか判別するために、 ボタンの値を取得したいのですが。 よろしくお願いします。

  • XHTMLの整合性エラー

    こんにちは,ver_51 と言います. 今HTMLで作ったファイルをXHTML(1.1)へと書き換えています. HTMLで作成したファイルの内容ですが,ユーザにはラジオボタンを押してもらい,次にボタンを押してもらうと言う簡単なものです. HTMLでは意図した動作が実現できています. しかしXHTMLへと書き換え,下記サイトで整合性をチェックしているのですが,Valid でないとのエラーメッセージが返ってきます. 色々とサイトを調べて修正したのですが,整合性は取れませんでした. お手数ですが,Valid となる実現方法をお教えいただけないでしょうか? 宜しくお願い致します. 整合性チェック: http://validator.w3.org/ 下記は元のHTMLファイルの内容です. ~ <form name="form1"> <input type="radio" name="test" value="1" onclick="check(this)" />A <input type="radio" name="test" value="2" onclick="check(this)" />B <input type="radio" name="test" value="3" onclick="check(this)" />C <input type="button" value="ボタン" name="test" onclick="search()" /> </form> ~ <script type="text/javascript" src="aaa.js"></script> 下記はJavaScriptファイルの内容です. var v; function check(radio){ v=radio.value; } function search(){ if(v=="1"){ location.href='a.html'; } else if(v=="2"){ location.href='b.html'; } else{ location.href='c.html'; } }

    • ベストアンサー
    • HTML
  • PHPでのフォームバリデートと値保持について

    いつもお世話になってます。PHP+Apache(+MySQL)の環境です。 フォーム(ラジオ、チェック、プルダウン、テキスト)に入力された内容をチェックし,すべて正しければ確認画面、間違いがあればフォーム画面にもどるが、その際、正しい項目の入力内容は保持したまま、さらに、間違いの項目に対して、エラーの内容を各項目のところ(ページ上部にまとめて表示するのではなく)に表示したいです。 要は、フォームの各種要素の値を保持する方法 と 入力規則の各種(値有無、条件合致等)チェックとフラグ表示をしたいです。 フォーム入力 └値有無チェック   ├全てあたいがあれば─内容確認┬送信(完了)   │                    └もどって修正(値保持したまま)   └値抜け、違反(チェックボックスで指定選択数オーバー、文字数オーバー等)があれば・・・      └入力画面にもどる(正しい項目は値保持、間違っている部分にはエラー内容のフラグ表示) <状況>フォームから値を受信し、空白の場合に当該項目に”未回答です!!”というメッセージを表示するところまでできています。違反なく入力されたところにメッセージは表示されませんが、値が消えます(保持されません)。 #vali.php if(!isset($_POST['exec'])){ include('temp/anc.php'); exit; } if(isset($_POST['exec'])){ function HTMLsc($str){中身省略します} $ErrorMsg = array(); $ErrorCnt = 0; for($i=1; $i<5; $i++){ $num = "q".$i; $$num = HTMLsc($_POST["$num"]); if(empty($$num)){ $ErrorMsg["$i"] = "未回答です"; $ErrorCnt++; }else{ /*この部分に作り込むのかなぁ?*/ } } if($ErrorCnt != 0){ include('temp/anc.php'); exit; } include('temp/comp.php'); } ----------- #anc.php <!-- 項目ごとに簡単に記述します --> <? if(isset($ErrorMsg[1])){echo $ErrorMsg[1];}?> <h3>問1.元気ですか?</h3> <input type="radio" name="q1" value="1">はい <input type="radio" name="q2" value="2">いいえ <? if(isset($ErrorMsg[1])){echo $ErrorMsg[1];}?> <h3>問2.朝なに食べた?</h3> <input type="checkbox" name="q2[]" value="1">ごはん <input type="checkbox" name="q2[]" value="2">パン <input type="checkbox" name="q2[]" value="3">みそ汁 <input type="checkbox" name="q2[]" value="4">牛乳 <? if(isset($ErrorMsg[1])){echo $ErrorMsg[1];}?> <h3>問3.起きてまず何する?</h3> <select name="q3"> <option value="1">顔洗う</option> <option value="2">歯磨く</option> <option value="3">ぼーっとする</option> </select> <input type="checkbox" name="q2[]" value="4">牛乳 <? if(isset($ErrorMsg[4])){echo $ErrorMsg[4];}?> <h3>問4.なんか書いて</h3> <input type="text" name="q4" value="<?php echo $_POST["q4"];?>"> <input type="submit" name="exec" value="終了・確認"> ※ラジオボタンの数、チェックボックスの数、プルダウン項目数は変化に耐えうる構造がよいです。参考サイトの紹介でもOKです。結構探しましたが単独での参考しかありませんでした

    • ベストアンサー
    • PHP
  • javascriptで切り替えて、php(include)でソースを呼

    javascriptで切り替えて、php(include)でソースを呼び出すということを行いたいのですが…。 インラインフレーム内のページで現在のものはこのようになっています。 (ラジオボタンで即座にフレーム内ページを変更) <script language="JavaScript"> <!-- function kirikae(addw) { parent.searchFrame.location.href=addw } //--> </script> <ul> <li> <input type="radio" name= "dEdit" value="" id="dEdit01" onClick="kirikae('/m/dd.html')"> </ul> ~~~~ これを、親ページでのincludeに変更したいのですが、現状よい方法が浮かびません。 以下のような形態で、ラジオボタンで表示するソースを変更、は変えずに、URL変更していたものをソースをincludeする、に変更したい考えです。 お知恵をお貸しください。 <ul><input type="radio" name= "dEdit" value="" id="dEdit01" onClick="~~~~~"> </ul> <?php include("/m/dd.html")?>

    • 締切済み
    • PHP
  • PHPスクリプト内のボタンのonclickの動作

    PHPスクリプト内で、下記のようなボタンと、ボタンが押された時のイベントでシンタックスエラー がなかなか消えません。どこがまちがっているのか教えていただきたいです。 どうぞよろしくお願い致します。 <?php ~ echo("<input type=\"button\" value=\"削除\" onclick=\"location.href='delete.php?sid=$row['sid']'\">"); ~ ?>

    • ベストアンサー
    • 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
  • 【ツリーメニューの保持】

    【ツリーメニューの保持】 1.フォーム内の「タイプ」のラジオボタンをどれか1つ選択すると該当のツリーメニューが表示される 2.・必要項目を入力し、form送信、POSTで受け取る。 3.・form送信後も表示されていたツリーメニューを保持 ということを実装したいと思っています。 javascriptは初心者で、ネットで調べてつくりました。 「ラジオボタン選択でツリー表示」はできましたが 「form送信後も表示されていたツリーメニューを保持」部分が実装できません。 一人ではどうしても解決できず、どなたかご教授いただけませんでしょうか? よろしくお願い致します。 ------------------------------------------------------------------------------ 【php】 if($_REQUEST["mode"] == "regist") { var_dump($_REQUEST); } 【javascript】 //送信後もツリーメニュー保持 function check() { if (document.fm.type[0].checked == true) { document.getElementById('A').style.display = "block"; } else if(document.fm.type[1].checked == true) { document.getElementById('B').style.display = "block"; } } //ラジオボタン選択でツリーメニュー表示 function treeMenu(tName) { radio = document.getElementsByName('type') if(radio[0].checked) { document.getElementById('A').style.display = "block"; document.getElementById('B').style.display = "none"; } else if(radio[1].checked) { document.getElementById('A').style.display = "none"; document.getElementById('B').style.display = "block"; } 【form】 <form action="hogehoge.php" method="post" name="fm"> <input type="hidden" name="mode" value="regist"> <table> <tr> <td>タイプ</td> <td> <input type="radio" name="type" value="1" onClick="treeMenu('A')"> <input type="radio" name="type" value="2" onClick="treeMenu('B')"> </td> </tr> </table> <div id="A"> <table> <tr> <td>住所</td> <td><input type="text" name="address" value="<?php echo $_REQUEST[address]?>"></td> </tr> </table> </div> <div id="B"> <table> <tr> <td>電話番号</td> <td><input type="text" name="tel" value="<?php echo $_REQUEST[tel]?>"></td> </tr> </table> </div> <table> <tr> <td>年齢</td> <td><input type="text" name="age" value="<?php echo $_REQUEST[age]?>"></td> </tr> </table> <input type="submit" value="確認" onclick="check()"> </form>

  • JavaScriptのラジオボタン選択で値取得

    JavaScriptでフォームのラジオボタン選択で選択した項目に応じて、複数の変数に特定の数値を入れたいのですが、どうしたらいいでしょうか? ラジオボタンで仮に、 ・東京 ・大阪 ・名古屋 という選択があったとして、 (そのボタンの下部に<input type="button" value="Go!" onclick="hogehoge();">というような実行ボタンがあったとします) 東京を選んだ場合は、 a = 4; b = 3; 大阪を選んだ場合は、 a = 3; b = 2; 名古屋を選んだ場合は、 a = 5; b = 4; と、a/bに数値を入れたいです。 今現在下記のように書いたのですが、動作しません。 <script type="text/javascript"> function hogehoge() { no = document.hoge.a.value - 0; if(no == 1) { n1 = 4; n2 = 3; }else if(no == 2) { n1 = 3; n2 = 2; }else if(no == 3) { n1 = 5; n2 = 4; } document.hoge.no1.value = n1; document.hoge.no2.value = n2; } </script> <form name="hoge"> <input type="radio" name="a" value="1" checked>東京 <input type="radio" name="a" value="2">大阪 <input type="radio" name="a" value="3">名古屋 <br> <input type="button" value="Go!" onclick="hogehoge();"><br> <input type="text" size="5" name="no1"><br> <input type="text" size="5" name="no2"> </form> よろしくお願いいたします。

  • onclick=で値が渡らない

    xoops+phpで以下の記述をしているが、ボタンを押しても、http://test2/xoops/modules/profile/List.phpの先頭にmodeの値が渡らない。(getもpostもだめ) 記述方法が違うのでしょうか。 <input type='button' value='タ' onclick="location.href = 'http://test2/xoops/modules/profile/List.php';mode.value='Edit';createYearSelected.value='2015';employeeCode.value='999000001';" >

    • ベストアンサー
    • PHP