• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP POSTについて質問です)

PHP POSTについて質問です

このQ&Aのポイント
  • PHP初心者がショッピングカートで商品の送り先情報を追加する方法についての質問です。
  • 次のページで複数の情報を受け取るためには、JavaScriptを使用してフォームの情報を動的に生成し、送信する必要があります。
  • JavaScriptの知識がないため、引用したコードを解析することが難しいです。助けていただけると嬉しいです。

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

>いろいろ試しているうちに間違って残ったまま >コピーしてしまいました。 で、正しくはどういう属性値になっているんでしょうか? 「JavaScriptで動的に増やす」ということですが、追加したinput要素にJavaScriptでname属性値を適切に付与しておくか、同じname属性値にするならばokuriname[]のようにしておかないといけません(受け取ったphpスクリプトでは配列として foreach で処理する)。送る方がそういうinput要素を生成できていないと(同一のname属性で[]も付加されていない状態で送信されると)、受け取った側では何も出来ません。 var_dumpした結果がそうなっていますよね。$_POSTがそういう状態になっている以上、受け取り側ではどうしようもありません。 (蛇足) 同一のname属性があってもPOSTされることはされるハズなので、POSTされた生データを自前で展開する手もないわけではありません。が、受け取り側でそこまでやるのは違うだろうと思います。基本的には送信するフォーム側をキチンと書く(phpスクリプトで$_POSTから処理出来るようにする)べきです。

takatttt
質問者

お礼

ありがとうございました。 おかげさまでうまくいきました。 勉強になりました!!

その他の回答 (1)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

まずは、shop_check.phpを <?php print '<pre>'; var_dump($_POST); print '</pre>'; だけの内容にして、どういうデータを受け取るか確認すればいいのでは? 正直、なぜ名前だけname属性値が配列になっているのか(添え字の $i はどこでどうセットしているのか)提示されたソースからだけでは読み取れません。きっとまだ長いソースなんですよね?

takatttt
質問者

補足

お返事ありがとうございます。 name属性値が配列になっている所は いろいろ試しているうちに間違って残ったまま コピーしてしまいました。 失礼しました。 <?php print '<pre>'; var_dump($_POST); print '</pre>'; こちらを試しました。 3件入力して送っても array(7) { ["okuriname"]=> string(12) "ああああ" ["okuriemail"]=> string(17) "aaaa@docomo.ne.jp" ["okuripostal1"]=> string(3) "123" ["okuripostal2"]=> string(4) "2345" ["okuriaddress"]=> string(12) "ああああ" ["okuritel"]=> string(13) "098-0987-0987" ["submit"]=> string(6) "送信" } 1件分しか出力されません。 全部出力するにはどうしたらいいですか?

関連するQ&A