• ベストアンサー

フォームにて

フォームであるボタンを押したら、そのボタンの値("name"等)を変数に代入し、その変数の値を維持したまま画面を再描画したいのですがどうしたらよいのでしょうか? onclick="func()"を使ってみたのですが、うまく代入されませんでした。 よろしければ教えてください。 お願いします。

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
回答No.3

shigure_mutsuさん、こんにちは。 [PHP] サーバサイドスクリプト [JavaScript] クライアントサイドスクリプト もしかすると勘違いされているのかもしれません。 > フォームであるボタン <input type="submit">サブミットボタンでしょうか。 <input type="button">普通のボタンでしょうか。 > その変数の値を維持したまま画面を再描画したい 再描画とは画面の更新(リロード)ということでしょうか。 何をしたいのかがもう少しわかりません^^; javascript ----------------------------------------------- <script type="text/javascript"> <!-- function func() { document.forms['frm1'].elements['txt1'].value = 'set'; } //--> </script> <form name="frm1"> <input type="text" name="txt1"> <input type="button" name="btn1" value="set_value" onClick="func();"> </form> ----------------------------------------------- php ----------------------------------------------- <?php $btn_name = ""; $btn_value = ""; if(isset($_POST['submit1'])) { $btn_name = "submit1"; $btn_value = $_POST['submit1']; } else if(isset($_POST['submit2'])) { $btn_name = "submit2"; $btn_value = $_POST['submit2']; } ?> <form name="frm1" action="<?=$_SERVER['PHP_SELF']?> method="post"> <p>name:<input type="text" name="txt1" value="<?=$btn_name?>"></p> <p>value:<input type="text" name="txt2" value="<?=$btn_value?>"></p> <p> <input type="submit" name="submit1" value="ABC"> <input type="submit" name="submit2" value="XYZ"> </p> -----------------------------------------------

shigure_mutsu
質問者

お礼

PHPのサンプル文が大変参考になりました。 isset関数というのを知らなくて四苦八苦してました。 なんとか目的の処理ができました。 ありがとうございました。

その他の回答 (2)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

HIDDENで受け渡せばいいということではなく?

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

PHPの質問でしょうか? JavaScriptの質問でしょうか?

関連するQ&A

  • ボタンの値を取得したい

    こんにちは。 複数個ボタンがあって、そのnameは文字列と変数で構成されています。 最終的にはボタンのvalueを取得したいのです。 いまのところボタンを押したらonClickでfunc(num)というイベントを動かしそれでボタンのnameの変数を取得しボタンの値を出そうという風にしているのですが、 そのname指定の記述法がわかりません。 どなたかわかる方がいらっしゃいましたら宜しくお願いします。

  • フォームでのリセットを使う方法

    PHP初心者です。宜しくお願いします。 フォームで値を入力後、チェック画面に行き修正で最初のページに戻る場合、 変数で値を受け渡しています。 <input type=text name="conpany" value="<?=$conpany?>"> この状態では、リセットボタンが使えませんが 使えるようにする方法はあるでしょうか?

    • 締切済み
    • PHP
  • 携帯用CGIフォームの修正(戻る)ボタンについて

    無料で配布されたCGIで携帯用のメールフォームを作っています。 フォームに入力後〔確認画面へ進む〕ボタンを押してエラーがあればフォームに自動で戻しエラー表示をしています。(入力内容を維持したまま戻されます) ここまではテンプレートでできました。 しかし、送信前の確認画面で、内容を修正するためのボタンがありません。 3つ作ったフォームの内の2つは携帯の戻るボタンで内容を維持したまま戻れたのですが、スクロールをしなければならない程縦長のフォームだけ、どういう訳か携帯の戻るボタンを押しても入力フォームに戻れないです。スクロールの上の方に上がるだけです。 そこで、確認画面に内容を修正するためのボタンを設置しようと考えているのですが、どのような記述をすれば良いのでしょうか? ※内容は維持したまま修正したいです。 確認画面のソースにはこのような記述があったのですがこれが関係していますでしょうか。 <!-- TMPL_LOOP NAME=loop_list --> <input type="hidden" name="<!-- TMPL_VAR NAME=key ESCAPE=HTML -->" value="<!-- TMPL_VAR NAME=value ESCAPE=HTML -->"> <!-- /TMPL_LOOP --> 大変お手数ですが教えていただけると助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • 1つのフォームで複数のnameに対応させるには?

    ■前提 ・1つのフォーム ・複数ボタン ・複数の送信先へテキストを送り、キーワード検索させたい ■現状 <form name="testform" method="get">  <input type="text" name="hoge" />  <input type="image" src="ボタン画像1" onClick="javascript: testform.action ='送信先1';submit();" />  <input type="image" src="ボタン画像2" onClick="javascript: testform.action ='送信先2';submit();" /> </form> ■問題 このやり方だと、 受け取る側も、すべてname="testform"に対応していないとうまくいきません。 ■知りたいこと name="piyo"にしか対応していない送信先もある場合には、 どう書けばよいのでしょうか? testformのvalue値をpiyoのvalue値に代入するには、 どうすればよいでしょうか? やりたいことは、 複数送信先に応じて、 <input type="text" name="の値を変えたい、です

  • フォームの値取得について

    PHP4を利用しています。 フォームからのデータ取得で 以前はフォームで利用した名前に$をつければ その値を変数として利用できたと思うのですが、 PHP4からは設定によっては出来ないと言うことなので フォームの名前と同じ名前の変数に値を入れる為 $name1=$_POST['name1']; で取得しようと思ったのですが、 フォームで利用しているテキストボックスが多いのです。 やはりひとつづづ取得する方法しかないのでしょうか? なにか良い手があったら教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームの一部をPOSTで送信できますか?

    フォームのPOST自体をあまり理解できていないかも知れないのですが・・・ onClickイベントでJavascriptでパラメータを送信したいと思っています。 <input type="text" name="text1"> <input type="text" name="text2"> <input type="text" name="text3"> <input type="text" name="text4"> <input type="text" name="text5"> <input type="button" value="ボタン1"> <input type="button" value="ボタン2"> <input type="button" value="ボタン3"> というようなフォームがあった場合、ボタン1を押したらtext1とtext2の値を、 ボタン2を押したらtext1とtext3の値を・・・という風に 送信する内容を変えたいのですが、それをPOSTで渡すことは可能なのでしょうか? ちなみに送信したい内容は、ボタンが違っても重なっているものもあります。 また可能であれば、どう記述すればよろしいでしょうか?(NNです) よろしくお願いします。

  • フォームのテキストコントロールに代入された計算式を計算したい

    VB.Netのイベントで、フォームのテキストコントロールに代入された計算式を計算したいのです。 (String変数に代入された値でも構いません) 計算式.textに "3*4+5"等の計算式が代入されているとします。 これを計算して結果を変数に代入させたいのですが、Textになっているので、どうすればよいか分かりません。 よい方法を教えて下さい。

  • MS Access2007 フォーム作成で不思議な現象が起きて困っています

    OS: WindowsXPSP3 Access2007:SP2 MSO(12.0 6425.1000) フォームのモジュールで Private 変数を宣言し、 フォームの開く時イベントで、値を代入するようにしました。 レコード移動時イベントでその変数を利用しようとしたら、 最初のレコード移動時にすでに値が空になってしまっているのです。 フォームを開いた時には、ちゃんと代入されています。 モジュール変数に値を代入しているのは、開く時だけです。 当然ながら、Option Explicit宣言をしてあります。 どうしてこんな現象が起きてしまったのでしょう? 解決に向けて、何をどう調べていったら良いのか、皆目見当がつかない状況に陥ってしまいました。 皆様のお知恵を是非お借りしたく、どうかよろしくお願いいたします。 ちなみに、Officeの診断プログラムは実行して問題のないことを確認済みです。

  • ラジオボタンでフォームの送信先を切り替える

    <script type="text/javascript"> <!-- function setDisabledTextbox(F,N1,N2,N3) { if(N1 == "OrderPayment0") { F[N2].disabled = true; F[N3].disabled = false; } else { F[N2].disabled = false; F[N3].disabled = true; } } //--> </script> //フォームの1の記述 <form method="post" action="送信先1"> //ラジオボタン1の記述 <input type="radio" name="payment1" value="値1" onclick="setDisabledTextbox(this.form,this.id,'tbox0','tbox1')" <?php if($payment_name == "値1") echo "checked"; ?> id="OrderPayment0" /> <label for="OrderPayment0">値1</label><br /> //ラジオボタン2の記述 <input type="radio" name="payment2" value="値2" onclick="setDisabledTextbox(this.form,this.id,'tbox0','tbox1')" <?php if($payment_name == "値2") echo "checked"; ?> id="OrderPayment1" /> <label for="OrderPayment1">値2</label><br /> 送信1の入力フォームの記述 <input type="submit" name="tbox0" value="送信1" disabled /> </form> //フォームの2の記述 <form method="post" action="送信先2"> 送信2の入力フォームの記述 <input type="submit" name="tbox1" value="送信2" disabled /> </form> 上記の記述で、最初、送信ボタン1及び送信ボタン2をdisabled状態にしておいて、ラジオボタンの1が押されたら送信ボタンの1を活性化、ラジオボタンの2を押したら送信ボタンの2を活性化するというように切り替えたいのですが、今のところ送信ボタンの1の切り替えはうまくいっているのですが、送信ボタンの2の方がdisabledされたままにまります。フォームの有効範囲の問題かな?と思って、ラジオボタンの2の記述をフォームの2の記述の方に移してみたりしたのですが、結果は同じようです。 両方とも切り替えるようにするには、どのように記述すればよいのでしょうか? 御教示願えればと思います。

  • アクセス2003について質問です。フォーム(1)、(2)、(3)があり

    アクセス2003について質問です。フォーム(1)、(2)、(3)があり、フォーム(3)上にはAボタンとBボタンがあります。フォーム(1)からフォーム(3)を開いた時はAボタンを使用可能(表示)し、Bボタンを使用不可(非表示)にしたいと考えています。反対にフォーム(2)からフォーム(3)を開いた時は、Aボタンを使用不可(非表示)、Bボタンを使用可能(表示)にしたいです。理由はフォーム(1)や(2)の値をフォーム(3)の中に値代入しているのですが、フォーム(3)を共有しているのでマクロで別々のボタンAとBを作っているためす。どなたかよろしくお願いいたします。

専門家に質問してみよう