質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

1086閲覧

$_POSTで送信したフォームの値を受け取りたいです(Notice: Undefined index)

Tsuyoponpon

総合スコア33

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2019/04/26 08:38

現在、ローカル環境にて商品注文サイトを制作しているのですが、
全くの独学で経験も浅いため、以下のエラーに苦しみ足踏みしています。
__
エラー内容は「Notice: Undefined index」です。__
自身で作成したファイルの「lastconfirm.php on line 25」で発生している模様です。

現状を分かりやすくお伝えするために、ファイルのソース全てを貼らせていただきます。
大変お手数ですが、ご教授をお願い致します。

php

1//.**lastconfirm.php(値の受信側)**----------------------------------------------------------- 2<?php 3require_once('prodata.php') 4 ?> 5 6<!DOCTYPE html> 7<html> 8 <head> 9 <meta charset="utf-8"> 10 <title>Confirm page</title> 11 <link rel="stylesheet" type="text/css" href="lastconfirm.css"> 12 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> 13 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 14 <link href='https://fonts.googleapis.com/css?family=Pacifico|Lato' rel='stylesheet' type='text/css'> 15 <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> 16 </head> 17 18 <body> 19 <div class="confirm-wrapper"> 20 <?php foreach($products as $product) :?> 21 22 <?php 23 $orderCount = $_POST[$product->getName()]; 24 ?> 25 <?php endforeach ?> 26 </body> 27</html> 28 29 30 31
//**prodata.php(インストラクタ)**-----------------------------------------------------------------------__ <?php require_once('promenu.php'); $alfort = new Product('New','画像URL','アルフォート(20枚入)',307); $calpas = new Product('New','画像URL','徳用カルパス',377); $lumand = new Product('Sold out','画像URL','ルマンド(3袋入)',315); $country = new Product('New','画像URL','カントリーマーム(チョコ&バニラ)',370); $oreo = new Product('A few','画像URL','OREO 1箱(2袋入)',191); $happy = new Product('New','画像URL','ハッピーターン(3袋入)',691); $products = array($alfort,$calpas,$lumand,$country,$oreo,$happy); ?>
//**show.php(値の送信側)**----------------------------------------------------------------------- <?php require_once('prodata.php'); require_once('promenu.php'); $menuName = $_GET['name']; $menu = Product::findByName($products,$menuName); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Product page</title> <link rel="stylesheet" type="text/css" href="show.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <link href='https://fonts.googleapis.com/css?family=Pacifico|Lato' rel='stylesheet' type='text/css'> <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> </head> <body> <header> <img class="basket" src="http://illustrain.com/img/work/2016/illustrain02-shopping07.png"> <p class="title">Shopping basket</p> <p class="sabtitle">商品注文ページ</p> </header> <form action="lastconfirm.php" method="post"> <div class="product-wrapper"> <div class="container"> <img class="product-image" src="<?php echo $menu->getImage() ?>"> <div class="top-right"> <p class="product-name"><?php echo $menu->getName() ?></p> <p class="product-price">¥<?php echo $menu->getPrice() ?> (税込)</p> <div class="top-amount"> <span class="font">数量</span> <input class="product-amount" type="text" name="<?php echo $menu->getName() ?>" value="1"> <span class="font">個</span> </div> <input class="product-decision" type="submit" value="注文を確定する"> </div> </div> <div class="clear"></div> </div> </form> </body> </html>
//**promenu.php(orderCountのゲッターとセッターの定義)**---------------------------------------------- <?php class Product { private $date; private $image; private $name; private $price; public $orderCount = 0; public function __construct($date,$image,$name,$price) { $this->date = $date; $this->image = $image; $this->name = $name; $this->price = $price; } public function getDate() { return $this->date; } public function getImage() { return $this->image; } public function getName() { return $this->name; } public function getPrice() { return $this->price; } public static function findByName($menus,$name) { foreach($menus as $menu) { if($menu->getName() == $name) { return $menu; } } } public function getOrderCount() { return $this->orderCount; } public function setOrderCount($orderCount) { $this->orderCount = $orderCount; } } ?>

以上です。----------------------------------------------------------------------------------------

●試したこと
var_dump()で、「$orderCount」を表示するなどをしました。
その際、値は受け取れているような状態でした。
何を試せばいいかもわからず、答えが見つかりません。

全くの素人で多大なご迷惑をおかけしますが、何卒お力をお貸しくださいますようお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

もしNoticeをはいているのが

$orderCount = $_POST[$product->getName()];

であれば設定したお菓子の名前でpostデータが送られてきていないということです
とりあえずnoticeを発生しなくするにはこうしてください

PHP

1$orderCount = filter_input(INPUT_POST,$product->getName());

投稿2019/04/26 08:58

yambejp

総合スコア114583

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tsuyoponpon

2019/04/26 09:09

yambejp 様 早速のご教授本当にありがとうございます。 無事エラーが消えてinputの値が表示され、2日間止まっていた学習を再開することができました! 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問