PHPのページ間による配列の受け渡しについて

このQ&Aのポイント
  • PHPのページ間で配列を受け渡す方法について説明します。
  • PHPのページ間で配列を受け渡す方法は、フォームを使用してデータをPOSTすることです。
  • JavaScriptを使用せずにPHPのみで配列を受け渡す方法を説明します。
回答を見る
  • ベストアンサー

PHPのページ間による配列の受け渡しについて

A.php ---------------------------------------------------- for($i=0;$i<5;$i++){ $hairetu[$i]=$i; $h_name[$i]=$i; } print "<form action='./B.php' method='POST'> for($i=0;$i<5;$i++){ print "<input type='text' name='".$h_name[$i]."' value='".$hairetu[$i]."'>"; } print "<input type='submit' value='Bへ送信'>"; print "</form>"; ------------------------------------------------------------ 拙い流れですが、このようにAからBへと送信します。 Bはいったい、どのようにしてAから送信されてきた配列を受け取れることができるのでしょうか? JavaScriptは使わず、PHPのみで作成したいと思いますので、よろしくお願いいたします。

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

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

  • ベストアンサー
  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

print "<input type='text' name='".$h_name[$i]."' value='".$hairetu[$i]."'>"; ↓ print "<input type='text' name='name[]' value='$hairetu[$i]'>"; にして送信 Bで print_r($_REQUEST[name]); で Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 ) 表示されます(配列の送受信が出来ています)

Diary02
質問者

お礼

うまくできました;w; 本当にありがとうございました。

関連するQ&A

  • Formを使ったPHP間での受け渡しについて

    いつもお世話になっています。 PHP間での変数の受け渡しで・・ <form action="<?= test.php ?>" method="POST">   <input type="hidden" name="id" value="aaa"/>   <input type="submit" name="submit" value="送信"> </form> と記述するとtest.phpには渡したいaaaが渡されるのですが、 これだとsubmitを押さないと渡せないため困っています。 したいことをまとめると、submitを使わずにページが表示されたら スグに変数が渡されるようにしたいです。 いろいろ試してみましたが、力不足で出来ませんでした。 宜しくお願いします!

    • ベストアンサー
    • 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)

    こんにちは、よろしくお願い致します。 現在使用している環境が2つあります。 Win2000+Apache1.3+PHP4.2.3 RedHatLinux8.0+Apache1.3+PHP4.2.3 そのうちLinux環境の方では、配列がうまく使えません。 お手数ですが、具体的な結果は test.html、test.phpのソースと実行結果をご覧下さい。 両方の環境のApacheやPHPの設定ファイルをチェックしたのですが 特に怪しいところはなく、とても困ってます。 アドバイスお願い致します。 (test.html)-- <HTML><BODY> <form action=./test.php method=post> <input type=input name=a[0] value="1"> <input type=input name=b[0] value="12"> <input type=input name=c[0] value="123"> <input type=input name=d[0] value="1234"> <input type=input name=e[0] value="12345"> <input type=input name=f[0] value="123456"> <input type=submit name=submit value="OK"> </form> </BODY></HTML> ------------ (test.php)-- <?php print_r($HTTP_POST_VARS); ?> ------------ 【 Win環境の結果 】 Array ( [a] => Array ( [0] => 1 ) [b] => Array ( [0] => 12 ) [c] => Array ( [0] => 123 ) [d] => Array ( [0] => 1234 ) [e] => Array ( [0] => 12345 ) [f] => Array ( [0] => 123456 ) [submit] => OK ) 【 Linux環境の結果 】 Array ( [a] => Array ( [0] => 1 ) [b] => Array ( [0] => 12 ) [c] => Array ( [0] => 123 ) [d] => Array ( [0] => ) [e] => Array ( [0] => 5 ) [f] => Array ( [0] => 56 ) [submit] => OK )

    • ベストアンサー
    • PHP
  • フォームを使った配列変数の受け渡し

    PHP初心者です、よろしくお願いします。 フォームからPHPで配列変数を受け渡すことを考えています。 一次元配列はうまく渡せましたので、これを二次元にしましたところ、 うまく渡せません。基本的なPHPの文法がわかってないので、つまづい ています。多分、配列変数の記述方法がおかしいのだと思うのですが・・。 ご教授よろしくお願いします。 <html> <body> <form method = "POST" action ="test2.php" > <?php //データ渡し側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10'>\n"); echo ("<br>\n"); } echo ("</tr>\n"); } ?> <input type="submit" name ="sbmit" value="data_input" > </form> </body> </html> <?php //データ受け側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j < 2;$j ++ ){ $tmp_data[$i][$j] = $_POST["data"][$i][$j]; echo ("$tmp_data[$i][$j] <br>\n"); } } ?> <html> <body> <form method = "POST" action ="test2.php" > <?php for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10' value='$tmp_data[$i][$j]'>\n"); echo ("<br>\n"); } } ?> </table> <input type="submit" name ="sbmit" value="in" > </form> </body> </html> 実行結果は、 Array[0] Array[1] Array[0] Array[1] と表示されて、実際の入力した値が反映されません。

    • ベストアンサー
    • PHP
  • forで作成したフォームの値を更にPHPへ渡して表示する方法

    初心者です。 現在、PHPでforを利用し、繰り返しフォームを表示 させた後、その表示されたフォームへ入力をし、更に 違うPHPで入力された値を出力させようとしているのですが、 最終の出力が出来ずに悩んでおります。 繰り返しでフォームを作成するまでは出来たのですが、 どなたか御助力頂けたら助かります。 ---------------------------------------------------- <form.html> <html> <head> <title>it1</title> </head> <body> <form name="form" action="./it.php" method="POST"> <b>ラジオ選択<br> <input name="machine" type="radio" value="24">24<br> <input name="machine" type="radio" value="48">48<br> <input name="machine" type="radio" value="24">50</b><br><br> </body> <input type="submit" name="Submit" value="設定"> </form> </html> ------------------------------------------------------ <it.php> <?php $a = $_REQUEST["machine"]; ?> <html> <body> <p>入力テキストボックス表示</p> <?php for ($c=0; $c<$a; $c++){ $var[$c] += $var[$c]; $dest[$c] += $dest[$c]; $no[$c] += $c+1; } ?> <table> <tr> <td><center> <form name="form" action="./it2.php" method="POST"> <td> <center> <b>vlan</b><br> <?php for ($i=0; $i<count($var); $i++) { "<form name="form" action="./it2.php" method="POST">" print("fa0/${no[$i]}<input type=\"text\" name=\"${var[$i]}\" size=\"3\" maxlength=\"3\"><br>\n"); } ?> </td> <td> <b>description</b><br> <?php for ($i=0; $i<count($dest); $i++) { print("<input type=\"text\" name=\"${dest[$i]}\" size=\"15\" maxlength=\"15\"><br>\n"); } ?> </td> </tr> </table> <input type="submit" name="Submit" value="設定"> </form> </body> </html> -------------------------------------------------------- 以降の出力ソースに関して、難儀中。

    • ベストアンサー
    • PHP
  • if文での条件分岐後の出力内容を他のページへ移動させたい

    お世話になります。現在ショッピングカートを製作しているのですが、b.phpで条件分岐をし、商品名、金額を表示させるのですが、表示させた内容をどのようにしたら、c.phpやd.phpに移動させることが出来るのでしょうか?ちなみにセッションを利用しています。 a.php(選択画面)→b.php(商品名・金額を表示)→c.php(送付先入力)→d.php(送付先入力確認)→e.php(メール送信) a.php ------------------------------------------------- <form name="form1" method="post" action="b.php"> <input type="radio" name="a" value="1">ラーメン <input type="radio" name="a" value="2">ソバ <input type="radio" name="b" value="1">うどん <input type="radio" name="b" value="2">パスタ <input type="submit" name="Submit" value="送信"> </form> ------------------------------------------------- b.php <form name="form1" method="post" action="c.php"> <?php session start(); $_SESSION['php']=$_POST['a']; $_SESSION['p']=$_POST['b']; ?> <?php if($_SESSION['php']==1 && $_SESSION['p']==1){ print "ラーメン&うどん" } 省略 ?> <?php if($_SESSION['php']==1 && $_SESSION['p']==1){ print "1000円" 省略 <input type="submit" name="Submit" value="送信"> </form> ------------------------------------------------- 上記のラーメン&うどん、と1000円をc.phpへ移動させるにはどのようにすればよいでしょうか? おわかりになられる方ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • 配列をPOSTで受けとる

    タイトルのまんまですが 配列をformで送って それをPOSTで受け取りたいのですが うまくいきません 具体的に言うと <?php print"<form method=POST action=action.php>"; for($i=0; $i<$n; $i++){    print"<input type=text name=foo[$i]>"; } print"<input type=hidden name=n value=$n>"; print"<input type=submit value=go>"; print"<form>"; ?> ///////////以下action.php////////////////// <?php $n = $_POST["n"]; for($j=0; $j<$n; $j++){    $foo[$j] = $_POST["foo[$j]"];    print"$foo[$j]"; } ?> こんな感じのことがしたいのですが うまくいきません どうもPOSTされてないみたいでfoo[$j]はnullです 凡ミスな気がしなくもないんですが...プログラム初心者なんで↓↓ 教えてください よろしくお願いします

    • ベストアンサー
    • PHP
  • phpそのよん

    <h1>PHPのテストです</h1> <form action="1.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php $ad1=$_POST["ad1"]; if($ad1==""){ print"違う"; } else{ print"合格"; print"様"; } ?> とやったんですが、まったく反応がありませんでした。 どこがいかんのでしょうーか?

    • ベストアンサー
    • PHP
  • postによる、phpとの受け渡し???

    いつもお世話になり誠にありがとうございます。 標記の件。 フロントサイドはブラウザ表示されますが、サーバーサイドは 確認できません。 恐らくはphpが誤っているのでしょう。 質問の仕方が悪いですけど、フロントサイド、サーバーサイド共にソースコードを表示します。 フロントサイドは完璧ではないですけどOKです。 PHPが誤っています。 どうかどこが誤っているか、お教えてください。 下記にコードを表示します。 フロントサイド <!--入力画面--> <form action = "./Blog.php" method = "post"> <label class="label" for="name">お名前(ニックネーム)</label> <center><input id="name" type="text" name="name"></center> <label class="label" for="e-mail">メール</label> <input id="e-mail" type="e-mail" name="e-mail"> <label class="label" for="category">カテゴリー</label> <input id="category" type="category" name="categoryl"> <label class="label" for="message">本文</label> <textarea name="area1" style="color:rgb(8, 8, 8); font-size:100%;" cols="50" rows="30"></textarea><br> <input type="submit" name="confiem" value="確認"> </form> <!--確認画面--> <?php if( $mode == 'input' ){ ?> お名前(ニックネーム)<?php echo $_POST['name'] ?><br> Eメール<?php echo $_POST['e-mail'] ?><br> カテゴリー<?php echo $_POST['message']) ?><br> <input type="submit" name="back" value="戻る" /> <input type="submit" name="send" value="送信" /> <?php } else { ?> <!--完了画面--> <?php } ?> フロントサイドの<form></form>の部分と phpのコードをどうか見比べてください。 どう直せばいいでしょうか? フロントサイドをブラウザで表示し、確認ボタンがクリックされたら 確認画面が表示されるようにしたいのです。 ご多忙中恐れ入ります。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpに関する質問

    phpでフォームに入力して送信ボタンを押したらアンケートの集計をphpの方に出力するプログラムを作っているのですがhtmlのほうは問題なく動くのですがphpのほうが入力したものが反映されなくて非常にこまっていますどなたかたすけてください ここからhtml <html> <p> </p> <h3>アンケート</h3> <form name="form" action="kadai.php" method="GET"> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> この~を何で知りましたか?<br> <input type="checkbox" name="check1" value="メディア媒体"/> メディア媒体で<br> <input type="checkbox" name="check2" value="イラスト"/> イラストで<br> <input type="checkbox" name="check3" value="その他"/> その他<br> </p> <p> 最近ハマっていることは?<br> <input type="checkbox" name="check4" value="サークル、部活"/> 部活など<br> <input type="checkbox" name="check5" value="得にない"/> 得にない<br> <input type="checkbox" name="check6" value="その他"/> その他<br> </p> <p> <input type="submit" name="submit" value="上記内容で送信"> </p> </form> </body> </html> ここからphp <html> <p> </p> <h3>アンケート</h3> <p> <b>下記の内容でお問合せを受付けました。<br> ありがとうございました。</b> </p> <p> <b>お名前:</b><br> <?php print( $_REQUEST["simei"] ); ?> </p> <p> <b>性別:</b><br> <?php print( $_REQUEST["gender"] ); ?> </p> <p> <b>この~を何で知りましたか:</b><br> <?php print( $_REQUEST["check1"] ); ?><br> <?php print( $_REQUEST["check2"] ); ?><br> <?php print( $_REQUEST["check3"] ); ?><br> </p> <p> <b>最近ハマっていることは:</b><br> <?php print( $_REQUEST["check4"] ); ?><br> <?php print( $_REQUEST["check5"] ); ?><br> <?php print( $_REQUEST["check6"] ); ?><br> </p> <p> </body> </html>

    • ベストアンサー
    • PHP

専門家に質問してみよう