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

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

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

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

Q&A

解決済

3回答

528閲覧

繰り返しの内容をformで送りたいのですが。

masatoshiseo

総合スコア1

PHP

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

0グッド

0クリップ

投稿2020/07/26 17:37

編集2020/07/29 03:22

繰り返しの内容をformで送りたいのですが・・・。

phpの基本から勉強しています。繰り返し処理などはだいたい理解できたのですが、formで違うページにデータを送信する際、
繰り返してつくった入力欄すべてのデータを送りたいのですが、なかなか方法が分かりません。よろしくお願いします。

html

1 2<!DOCTYPE html> 3<html> 4<head> 5 <meta charset="utf-8"> 6 <title>cafe.003.php</title> 7</head><body> 8 <form action="cafe.004.php" method="post"> 9 10 <?php for($i=1;$i<=5;$i++):?> 11 12 <?php echo '<br>'.'hello!'.'<br>' ?> 13 <input type="text" value="0" name="name"> 14 <?php endfor?> 15 16<input type="submit" value="GO!"> 17 18</form> 19</body> 20</html> 21

html

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <title>cafe.004.php</title> 6 </head> 7 <body> 8 9 <?php 10 $price = $_POST['name']; 11 12 echo $price; 13 ?> 14 15 16</body> 17</html>

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

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

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

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

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

kai0310

2020/07/26 20:30 編集

コードを提示する際はMarkDown記法を使用してください。尚、質問本文は修正できます。 (参考: https://teratail.com/help#about-markdown 例 HTMLファイルの場合) ```HTML(ここに言語名) <!-- ここに挿入 --> ```
guest

回答3

0

ベストアンサー

ラジオボタンを作ったことがあるのなら理屈は分かるかもしれませんが、同じnameで送られるのは入力がある最後の1つだけです。
textなら空文字も送信できるはずなので、本当に最後のものだけ。

よく使われる手段は2つ。

  • 一意のnameをつける。

for使ってるならカウンターをそのままname属性値につけると良い。受けとるときも同じ回数ループさせる

  • 複数選択チェックボックスのように配列で送信する

投稿2020/07/26 20:57

m.ts10806

総合スコア80861

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

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

masatoshiseo

2020/07/27 11:24

ありがとうございます!まだ解決出来ておりませんが参考にさせていただきます!
m.ts10806

2020/07/27 20:04

何がどうわからないか追記してもらえると次のアドバイスができるのですけど、それは不要ということでしょうか。 フィードバックは具体的にお願いします。でないと試行錯誤になりませんし、進みません。
masatoshiseo

2020/12/15 05:05 編集

いろいろ試行錯誤しまして、受ける側も同じようにループさせると教えていただいたので配列を組んで foreachで変数を送信したらうまく行きました!助言いただきありがとうございます。
m.ts10806

2020/07/29 02:47

ひとまず、既に指摘のあるコードのマークダウンはしておいてください。質問は編集できます。私はほぼ質問のコードを読んでいません(マークダウン対応されてないと読む気がおきない回答者は非常に多いです)
masatoshiseo

2020/07/29 03:24

マークダウン、勉強になりました。ありがとうございます。 また是非よろしくお願いします!
m.ts10806

2020/07/29 03:43

あくまで「見る人(回答者だけではない)への配慮」と捉えてください。
guest

0

こんな感じでしょうか?

投稿2020/07/27 00:18

yambejp

総合スコア115010

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

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

yambejp

2020/07/27 00:19

<?PHP $name=filter_input(INPUT_POST,"name",FILTER_VALIDATE_INT,FILTER_REQUIRE_ARRAY); var_dump($name); ?> <form method="post"> <?php for($i=1;$i<=5;$i++):?> <br>hello!<br> <input type="text" value="<?=$i?>" name="name[]"> <?php endfor?> <input type="submit" value="GO!"> </form>
masatoshiseo

2020/07/27 11:23

ありがとうございます!まだ解決出来ておりませんが参考にさせていただきます!
guest

0

先に回答されているように、「文字列+数字」のnameを設定するのが現実的じゃないスかね。
あと、何個作ったかを hidden で持たせといたら後の処理が楽かもしれません。

場合によっては、submit 直前に JavaScript で全部の入力を適当な hidden にまとめていれてあげる方法も使えますが、まあ、あまりオススメはしません。

投稿2020/07/26 22:15

takasima20

総合スコア7460

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

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

masatoshiseo

2020/07/27 11:23

ありがとうございます!まだ解決出来ておりませんが参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問