• ベストアンサー

全ての変数を拾う方法

お世話になっております。 nameや数の異なるフォームからsubmitして全ての変数を拾うような処理をするひとつのファイルを作成したいのですが、どのように書けばよいのでしょうか? よろしくお願いいたします。

  • q-tip
  • お礼率77% (116/149)
  • PHP
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.3

> あと、全部セッションに保存するにはどうすればいいのでしょうか? PHP のバージョンよって違いますが PHP 4.0.6 より新しければ <?php session_start(); $_SESSION = $_SESSION + $_POST + $_GET; ?> にて、フォームや URL のクエリーで送られてくる POST や GET がすべてセッションに保存されます。 # ちなみに PHP のマニュアルお持ちですか? http://php.s3.to/man/ で、セッションは配列、外部からくる変数などを読んでくださいね ・POST や GET に関すること http://php.s3.to/man/language.variables.external.html ・セッションに関すること http://php.s3.to/man/ref.session.html ・配列に関すること http://php.s3.to/man/language.types.array.html これだけの情報がタダで得られるんですよ~ がんばってください

参考URL:
http://php.s3.to/man/
q-tip
質問者

お礼

度々の回答ありがとうございます。 とりあえずセッションへ全て保存できました。 少し不明な点がありますが、質問してばかりでは仕方が無いので、教えていただいたサイトは難しくて敬遠していたのですがじっくり読んで調べてみます。 本当に助かりました。 ありがとうございました。

その他の回答 (2)

  • togino
  • ベストアンサー率75% (97/129)
回答No.2

あっ、複数のフォームからもでしたね。 その場合  <input type="submit" name="submit_name" value="type1"> のように submit ボタンに名前を値を設定すれば、PHP 側で if($_POST["sumbit_name"] == "type1"){ のように、フォームごとに分岐させることができます。 ただ、この場合ですと、submit ボタンの表示上の名前まで 変わってしまうのが、私は嫌でして <input type="hidden" name="submit_name" value="type1"> のように、hidden で隠して submit の種類を送るようにしています。

q-tip
質問者

お礼

ご回答ありがとうございます。 お返事が遅くなり申し訳ございません。 あと、全部セッションに保存するにはどうすればいいのでしょうか? 恐れ入りますがよろしくお願いいたします。

  • togino
  • ベストアンサー率75% (97/129)
回答No.1

<form action="test.php" mathod="post">  <input type="text" name="a">  <input type="hidden" name="b" value="1">  <input type="submit"> </form> のようにして POST すれば、$_POST 変数に全ての変数が入っていると思いますが・・・ test.php <?php  foreach($_POST as $post_name => $post_value){   print("name = $post_name, value = $post_value);  } ?> 以上より、すべての name と value の組み合わせが得られます。

関連するQ&A

  • ページ間での変数の受け渡し

    6つのhtmlファイルと6つのperlファイルからなるアンケートページを作成しています。 ページを遷移するごとに、perlファイルを実行し、未入力があれば、エラー表示、条件を満たせば、ファイルを作成し、内容を書き込み処理させています。 ただ集計に関しては、最後のhtmlファイルのsubmitボタンを押したときにすべて集計をさせたいと考えています。(各設問ごとの集計ファイルは作成済み) 最後のページの処理に対応するperlファイルに最初のページからの変数を宣言していますが、うまく集計されません。どのようにすれば、最後のページのsubmitボタンを押せば集計されるようになるのでしょうか? うまく伝わっているかわかりませんが、宜しくお願いいたします。

  • JQueryの変数の扱いで弱っています。

    お世話になります。 JQuery初心者です。 3日程、ハマリ、行き詰まったので、相談させて下さい。 アマゾンのレビューの「レビューは参考になりましたか?」「はい」「いいえ」の 様なものを作りかけています。 その際、以下の様な記述をしています。 (肝心な部分抜粋) ---------------------------------------------- 大元   正常に稼働 ---------------------------------------------- <!-- JQuery --> <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> <!-- $(document).ready(function(){ $("#form1").submit(function() {        //●●●この  #form1  の部分を変数にしたい var str = $(this).serialize(); 処理 }}; --> </script> </head> <body> <form id="form1" method="post" action="">    //●●●#form1とはコノ部分 <select name="option"> <option value="yes" selected>参考になった</option> <option value="no">参考にならなかった</option> </select> <input type="submit" name="submit" value="投票する"/> </body> </html> ---------------------------------------------- 上記の記述で正常に稼働しています。 が、1つのページにフォームを複数作り、それぞれのフォームにIDをふって、 それぞれ正常に稼働させたいのです。 そこで、javascriptの $("#form1").submit(function() {  ここの   #form1   部分を変数にして、複数のフォームに対応させたいと思っています。 が! 以下の様に改良したところ、正常に稼働しません。 ---------------------------------------------- 以下、改良部分   うまく稼働せず ---------------------------------------------- -------javascript部分 $("input").click(function(){ //●●●ここを改良 変数作成 id2= $(this).attr("class"); sharp="#form"; id3 = sharp + id2; }); $("id3").submit(function() {       //●●●ここを改良 変数指定 -------フォーム部分 <form id="form1" method="post" action=""> <input type="submit" name="submit" value="投票する" class="1"/>     //●●●ここを改良 class="1" を追加 ------------------------------------------------- つまり、classの「1」をjavascript部分で読み取って、#form の文字列と組み合わせて    #form1 として、機能させたいのですが、うまくいきません。 (何故か、$("#form"+id2) の部分がうまく機能しません。) ※要は複数のフォームのidに、1つのjavascriptで対応させたいだけで、 上記の様な、まわりくどいやり方には全くこだわっていません。 どうか、迷える子羊に愛の手を!

    • ベストアンサー
    • AJAX
  • fputsと変数

    フォームを使って日々のサイト更新をしたいのですが、途中からどうしたらいいのかわかりません。 ほかの質問を読んでも、なさけないのですが解決しませんでした(涙) たとえば、 aaa.html(更新したいhtmlファイル 上書きしていく) form.html(更新に使うフォームがあるhtmlファイル) get.php(フォームで飛ばしたデータを受け取り処理するphpファイル) があるとします。 aaa.html内にあるテーブルに入っている値 NO.1 001 NO.2 002 NO.3 003 の数値 001 002 003 部分を更新したい時、 ↓ form.htmlのフォームから更新するデータを入力して、 <INPUT size="2" name="NO1"> データをget.phpに送信 ↓ get.phpで受け取り、変数に値を格納  &no1=$_POST['NO1']; そして、fopenでaaa.htmlを開くんだろうなーとまではわかるのですが、そしてどうしたらいいのか・・・。 aaa.htmlはhtmlファイルだから、変数をどう使えばいいのでしょう? お願いします。助けてください。

    • 締切済み
    • PHP
  • Formでの値の取得後、変数での表示ができない

    環境は; RedhatLinux7.1.2 Apache PHP PostgreSQL(今回は関係ないかな) 問題は、フォームにて値を渡した後$xxxxとして変数として表示できるはずなのにできないことです。 ちなみにPostの代わりにGetで行うとアドレス部分に確かに値が渡されたことが認められます。 同じファイルをPHPが使用できるレンタルサーバーで試したところ問題はありませんでした。 **** form.html ***** <form name="a" action="test.php" method="post"> <input type="text" name="a"> <input type="submit" value="submit" name="submit"> </form> **** test.php **** <? print $a; ?> 何が悪いのか全くわからないので、どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームから受け取ったデータを変数に/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
  • String型の変数を使った問題

    すごく簡単なプログラムのはずで、初歩的な質問で申し訳ありませんが、教えていただければと思います。 問題: 以下の場合の処理を行うプログラムを作成せよ。 (1)String型の変数を作成し、苗字を格納する。(値は直接書き込む) (2)String型の変数を作成し、名前を格納する。(値は直接書き込む) (3)(1)で作成した苗字を持つ変数と、(2)で作成した名前を持つ変数を結合して出力。 (4)「苗字は'((1)で作成した変数の値)'です。名前は'((2)で作成した変数の値)'です。」と出力。 出力結果: C:\>java Name いわたてつお 苗字は'いわた'です。名前は'てつお'です。 C:\> 上記のプログラムを作成しようとしたのですが・・・ import java.io.*; class Name { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String name1 = str1; String str2 = br.readLine(); String name2 = str2; System.out.println(name1 + name2); System.out.println("苗字は\'" + name1 + "\'です。名前は\'" + name2 + "\'です。"); } } ↑これではいくら変数を2つ作成しても、書き込んだ文字が全て 苗字の変数に格納されてしまってちゃんと出力出来ないという事は 分かるのですが、どうやったらちゃんと苗字と名前に分かれて 出力されるのか分からないので、教えてください。 なんとなく文法的にも間違っている気が・・・ ホント初歩的な質問ですみません!

    • ベストアンサー
    • Java
  • フォーム送信後の更新ボタンでも$_POST変数が初期化されない

    フォームのサブミット後にプログラムが走るようになっているtest.phpがあるのですが、フォーム送信後に更新ボタンを押しても再度ポストされるようになってしまっています。 ブラウザの更新ボタンを押したときには、ポストせずにフォームをクリアしたいのですが、どうすればできますでしょうか? <form method="post" action="<?php print($_SERVER['PHP_SELF']); ?>"> <input type=text name=aaa> <input type="submit" name="submit" value="submit"> </form> <?php if($_POST['submit']) { 処理 } ?>

    • ベストアンサー
    • PHP
  • なぜ、変数は数じゃなくて文字なども入るのに、変数と

    なぜ、変数は数じゃなくて文字なども入るのに、変数と呼ぶんでしょうか? 変名とかならまだわかりますが 数って。 phpで$name = "山田"

  • 受け渡した変数が、プログラム実行後に消えてしまう?!

    いつもありがとうございますm(_ _)m。入力画面test1.phpをlocation.replaceを使って[リロードしない為]切り替えて、別の画面test2.phpと連携させています。JSのwindow.openは顧客環境では使えません(大泣) test1.php→test2.php→test1.phpという流れで二つの変数を受け渡ししたいのですが。。。 (1)test1.phpにある変数 $row1[code] $row1[name] inputボタンをクリックすることで、URLを使って次のファイルに渡す <input type="button" value="go2" onClick='location.replace ("http://********/test2.php?row1[code]=<? echo $row1[code];?>&row1[name]=<? echo $row1[name];?>")' name="button"> (2)test2.php フォームのテキストフィールドが用意されている <input name="code" type="text" value="<? echo $row1[code]; ?>"> <input name="name" type="text" value="<? echo $row1[name]; ?>"> test1.phpから、test2.phpの画面に切り替わった瞬間には、2つのの値がキチンと表示されている。 ここでnameに入った値を元に、サブミットボタンで処理。 <input type="submit" name="read" value="読み込み"> この時name部分に関しては、DB読込・結果をname&その他の項目と共にフォーム上にちゃんと再表示できるが、codeの値が消えてしまう。。 PHPの処理部$read部に以下のように2通り、書き加え試しましたが、だめでした。 $row1[code] = $row1[code]; $row1[code] = $_GET['$row1[code]']; なぜ消えてしまうのか? 変数をキープするにはどうしたらいいでしょうか? あるいは、他に良いアイディアなどありましたら、教えて下さい。よろしくお願いいたします。。。

    • ベストアンサー
    • PHP
  • メンバ変数に関して

    現在、C++にてプログラム作成しております。 1点プログラミングを行っている中で疑問になった点があります。 アイデア・方法等があれば教えて頂けると幸いです。 現在、メンバ変数として配列を定義したプログラムを作成しております。 そのメンバ変数を同クラス内のたくさんのメソッドから呼び出して処理を行っているのですが、そのメンバ変数の配列数を固定配列数ではなく、可変な配列数にしたいと考えております。 プログラムの実行後に取得した値をメンバ変数の配列数にしたいのです。 このように、メンバ変数の配列数の可変可を実施することは可能でしょうか?

専門家に質問してみよう