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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Q&A

解決済

2回答

285閲覧

form属性 品名と個数を同時にphpに引き渡すためには。

ema-material

総合スコア29

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

0グッド

0クリップ

投稿2020/07/01 09:26

表題の件
テイクアウトの予約をいれるダミーサイトを制作中です。
formの中の要素をphpに引き渡すためにはどうしたら良いかで悩んでいます。
希望としては、一行に「品名」=「個数」と並んだ状態で表示できると良いなと思っています。
現状では「品名」の方に特にチェックボックス等は設けておりません。
個数入力だけでうまくできる方法はないでしょうか?

ーーーーーーーーーーーーーー
今週のA弁当 3個
今週のFドリンク 1個
ーーーーーーーーーーーーーー
のようにしたいです

どうぞよろしくお願いします。

html

1 <dl> 2 <dt class="selectorder"><label for="numberInput01" name="selectfood">A&nbsp;:<span>今週のA弁当</span></label></dt> 3 <dd><input type="number" name="selectfood" value="0" id="numberInput01" min="0"></dd> 4 <dt class="selectorder"><label for="numberInput02">B&nbsp;:<span>今週のB弁当</span></label></dt> 5 <dd><input type="number" name="selectfood" value="0" id="numberInput02" min="0"></dd> 6 <dt class="selectorder"><label for="numberInput03">C&nbsp;:<span>今週のC弁当</span></label></dt> 7 <dd><input type="number" name="selectfood" value="0" id="numberInput03" min="0"></dd> 8 <dt class="selectorder"><label for="numberInput04">D&nbsp;:<span>今週のD弁当</span></label></dt> 9 <dd><input type="number" name="selectfood" value="0" id="numberInput04" min="0"></dd> 10 <dt class="selectorder"><label for="numberInput05">E&nbsp;:<span>今週のEドリンク</span></label></dt> 11 <dd><input type="number" name="selectfood" value="0" id="numberInput05" min="0"></dd> 12 <dt class="selectorder"><label for="numberInput06">F&nbsp;:<span>今週のFドリンク</span></label></dt> 13 <dd><input type="number" name="selectfood" value="0" id="numberInput06" min="0"></dd> 14 </dl>

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

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

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

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

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

guest

回答2

0

inputのnameをそれぞれ別のものにして、そのnameと品名をひも付ける定義をどこかしらにするしかないと思います。
簡単にするなら配列。
labelもinputもその配列から作れば取得時も楽でしょう。

input,select,textareaだけがform送信できるので、現状では「品名」は送信できません。
「買い物かご」のようなものを想定しているのでしたら、本来は商品マスタをDBに持って、商品コードだけをhiddenなどの要素で持つことになると思います。
いずれにしても紐づけは別途する必要があります。

例:(未検証最小構成)

php

1<?php 2$itemlist = [ 3 1=>["itemname"=>"A弁当"] 4 ,2=>["itemname"=>"B弁当"] 5]; 6//取得部分 7if($_SERVER["REQUEST_METHOD"] === "POST"){ 8 foreach($_POST["item_number"] as $id=>$number){ 9 if(array_key_exists($id,$item)){ 10 echo <<<EOF 11 <p>{$item[$id]["itemname"]}{$number}個</p> 12 13EOF; 14 } 15 } 16} 17 18//form部分 19?> 20<form method="post"> 21<?php 22 foreach($itemlist as $id=>$row) { 23 echo <<<EOF 24<label for="food_{$id}">{$row["itemname"]}</label> 25<input type="number" name="item_number[{$id}]" id="food_{$id}">個 26 27EOF; 28 } 29?> 30</form> 31 32

投稿2020/07/01 09:31

編集2020/07/01 09:56
m.ts10806

総合スコア80852

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

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

ema-material

2020/07/02 00:49

ありがとうございます。このパターンも試してみようと思います。
m.ts10806

2020/07/02 01:38

なるべく情報は一元管理した方がバグが少ないですし改修もしやすくなります
guest

0

ベストアンサー

nameを共通にしていますが
シンプルにnameを分かりやすい固有のものにすれば良いのでは?
と思いますが、、、

投稿2020/07/02 00:03

-millmill-

総合スコア674

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

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

ema-material

2020/07/02 00:49

ありがとうございます。おっしゃる通りでして。 今朝起きたらそのアイディアが浮かんだので、差し替えてみました。 PHPの方で苦戦しているのでまだ完成はしていないのですが、なんとかなると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問