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

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

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

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

Q&A

解決済

1回答

800閲覧

php繰り返し処理について ($test = $_POST['test'])

uep3vjz9wp

総合スコア20

PHP

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

0グッド

0クリップ

投稿2018/09/02 06:36

編集2018/09/03 23:38

お世話になります。
「test.php」で「require_once ('config_post.php');」として
以下のconfig_post.phpを読み込んでいます。

php

1// config_post.php 2<?php 3 $name = $_POST['name']; 4 $subject = $_POST['subject']; 5 $naiyou = $_POST['naiyou']; 6 $tantou = $_POST['tantou']; 7 $ren1 = $_POST['ren1']; 89 $ren50 = $_POST['ren50']; 10

上記は動作しています。
$ren1 ~ $ren50と50個ですが、将来もっと増える可能性があります。
こういった場合どうすればよいのでしょうか。
繰り返し処理として以下を試してみましたが動作しませんでした。

php

1// config_post.php 2<?php 3 $name = $_POST['name']; 4 $subject = $_POST['subject']; 5 $naiyou = $_POST['naiyou']; 6 $tantou = $_POST['tantou']; 7 8 $i = 1; 9 while ($i <= 50) { 10 $ren."$i" = $_POST["ren"."$i"]; 11 $i++; 12 }

$ren."$i" = $_POST["ren"."$i"]; の箇所を以下のようにいくつか試してもみましたが動作しませんでした。

php

1$"ren"."$i" = $_POST["ren"."$i"]; 2$ren.$i = $_POST["ren"."$i"]; 3echo $ren."$i" = $_POST["ren"."$i"]; 4echo [$ren."$i"] = $_POST["ren"."$i"]; 5echo ($ren."$i") = $_POST["ren"."$i"];

良い方法ありましたらご教示お願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じで、配列で渡します。

php

1<?php 2ini_set('display_errors', true); 3error_reporting(E_ALL); 4 5if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') === 'POST') { 6 $posts = filter_input(INPUT_POST, 'post', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); 7 var_dump($posts); 8} 9?> 10<!DOCTYPE HTML> 11<html lang="ja"> 12 <head> 13 <meta charset="UTF-8"> 14 <title></title> 15 </head> 16 <body> 17 <form action="" method="post"> 18 <p><input type="text" name="post[]" /></p> 19 <p><input type="text" name="post[]" /></p> 20 <p><input type="text" name="post[]" /></p> 21 <p><input type="text" name="post[]" /></p> 22 <p><input type="text" name="post[]" /></p> 23 <p><button>submit</button></p> 24 </form> 25 </body> 26</html>

投稿2018/09/02 06:44

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

uep3vjz9wp

2018/09/02 07:53

早速の回答ありがとうございます。 お聞きしたいのですが、 ```php <p><input type="text" name="post[]" /></p> ``` に1から50まで作るのでしょうか? nyuuryoku.phpで50個の入力欄を繰り返しで作り、test.phpへと「<form method="post" action="test.php">」させています。 ```php //nyuuryoku.php <form method="post" action="test.php"> // (略) <tr> <?php $renban = 1; while ($renban <= 50) { ?> <td><?php echo "連絡".$renban;?>平成年月日時分 </td> <td> <textarea name="<?php echo "ren"."$renban"; ?>" cols="120" rows="8"> <?php echo htmlspecialchars($result["ren"."$renban"], ENT_QUOTES, 'UTF-8'); $renban++; ?> </textarea> </td> </tr> ``` ```php //test.php sqlでデータベースupdate require_once ('config_post.php'); // (略) ```  入力欄は繰り返しで50個作れるのですが、$ren1から50 = $_POST['ren1から50']は難しいのでしょうか?質問の仕方が悪く、申し訳ございません。  ご回答頂いた内容で$ren1から50 = $_POST['ren1から50']できるのでしょうか?勉強不足で申し訳ございません。  今一度ご教示お願いいたします。
退会済みユーザー

退会済みユーザー

2018/09/02 08:07 編集

プログラムの世界では、0〜49 で50個の要素をカウントします。 番号を明示して、ren1, ren2... というように命名するのは、保守性が低くダメなコードです。 そうしなくてよいように配列という概念が存在するのです。 受け取り側のコードもサンプルに記述しているのですから、動かして見れば、連番なんかつけなくても値を受け取っていることは確認できるはずです。
uep3vjz9wp

2018/09/02 08:53

ありがとうございます。現在手直し箇所が多くちょっと時間がかかっております。もう少し時間を下さい。本当にすみません。
uep3vjz9wp

2018/09/02 10:11

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問