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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1894閲覧

selectで選んだ数値だけformを作成したい。

sunagakuuun

総合スコア16

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/05/18 19:02

編集2019/05/20 01:03

selectで選んだ数だけ入力フォームを作成したいのですが、調べても欲しい情報が手に入らないのでわかる方、回答をぜひお願いします。

html

1<form id="submit_form" name="ninzu_form" method="post" action="#"> 2<select id="submit_select" name="ninzu"> 3<option value="">Please Select</option> 4<option value="2">2</option> 5<option value="3">3</option> 6<option value="4">4</option> 7<option value="5">5</option> 8<option value="6">6</option> 9</select>player 10<input type = "submit" value ="ENTER"> 11</form> 12 13<?php 14 15$ninzu = NULL; 16if(isset($_POST['ninzu_form'])){ 17$ninzu = $_['ninzu_form']; 18} 19 20?> 21 22<script type="text/javascript"> 23 24var g_ninzu = <?php echo $ninzu; ?>; 25for(g_ninzu;g_ninzu > 0;g_ninzu--){ 26document.write(" 27<form id="player_name" method="post" action="#" value=""> 28")} 29</script>

人数を選択するformを作り、選択した値を使って値の数分の入力フォームを設置するソースを書いてみました。
2~6を選んでpostで送信したのを値として受け取り、受け取った数値分の入力フォームを作りたいです。
作った入力フォームには名前とコメントの2つが入力できるようになるのがベストです。
アドバイス、ヒント、参考ソースの提供など、どうかよろしくお願いします。

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

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

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

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

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

m.ts10806

2019/05/18 21:26

ゴールが不明瞭です。 イメージ図や、結果こうしたいというhtmlなどご提示ください。 また、「選択した数値分の」であれらその数値分ループさせれば良いと言うのは認識はありますか? どこまで把握していてどのあたりがわからないとか、ここまで組んでみた、調べたことそれで試したことなど具体的に記載してください。 「調べたけど見つからない」だけだと伝わる情報は皆無です。(本当に調べたかどうか分からない)
sunagakuuun

2019/05/19 05:25

<h3>Please choose the number of people to play</h3> <form id="submit_form" name="ninzu_form" method="post" action="#"> <select id="submit_select" name="ninzu"> <option value="">Please Select</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> </select>player <input type = "submit" value ="ENTER"> </form> <?php $ninzu = NULL; if(isset($_POST['ninzu_form'])){ $ninzu = $_['ninzu_form']; } ?> <script type="text/javascript"> var g_ninzu = <?php echo $ninzu; ?>; for(g_ninzu;g_ninzu > 0;g_ninzu--){ document.write(" <form id="player_name" method="post" action="#" value=""> ")} </script> 記述が足りませんでした。次から気を付けます。 必要な処理に近い内容のソースを調べて、改変しているだけなのでめちゃくちゃ変なソースを書いている可能性がありますが、自分が実際に書いたソースは上記のとおりです。
m.ts10806

2019/05/19 05:27

質問は編集できますし、このコメント欄ではマークダウン使えなかったりデフォルト非表示なので質問本文に追記していただければと
sunagakuuun

2019/05/19 05:30

追記いたしましたmm
m.ts10806

2019/05/19 06:26

何度もすみません コードはマークダウンのcode機能利用して御呈示ください
sunagakuuun

2019/05/20 01:03

失礼いたしました。マークダウンにできていると思います。
guest

回答2

0

ベストアンサー

2~6を選んでpostで送信したのを値として受け取り、受け取った数値分の入力フォームを作りたいです。

んーと、入力のバリデーションは省きまちゅよ?

送信先.php

PHP

1$count = filter_input(INPUT_POST, "ninzu"); 2 3echo <<< EOL 4<form id="submit_detail_form" name="detail_form" method="post" action="#">\n 5EOL; 6 7for($i = 0; $i < $count; $i++) 8{ 9 echo <<< EOL 10<input type="text" name="name_{$i}" value=""> 11<input type="text" name="comment_{$i}" value="">\n 12EOL; 13} 14 15echo <<< EOL 16</form>\n 17EOL; 18

投稿2019/05/18 23:19

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sunagakuuun

2019/05/19 05:28

回答ありがとうございます! 基礎的な質問になってしまい申し訳ないのですが、 echo <<< EOL はどういう意味ですか? 調べたら改行を表しているとのことなのですが、改行しているのでしょうか?
退会済みユーザー

退会済みユーザー

2019/05/19 05:39 編集

んと、 <<< は ヒアドキュメントといって、そのブロックをそのまま出力するための文法でちゅ。 とても強力な文法なのでちゅが、あまりちゃんと紹介ちているWEBサイトは無いでちゅね。 なにちろ、WEB記事を書く多くのエンジニアはちょっとプログラミングをかじっただけのニワカなので システムかいはちゅで本当に有益な事が何かということは全くわかっておらじゅ、 小手先の技術ばかりを論点にしがちなのでちゅ。 実務ではテンプレートエンジンを使うのでヒアドキュメント(<<<)の出番があまりないのは事実なのでちゅが、 基礎としてヒアドキュメントというものが有るということは、ちゃんと知っておくべきでちゅね。 現実的にはこういうバカばっかりで、書かれているコードの意味が分からない底辺コーダさんばかりだから質問者しゃんがわからなくてもはじゅかちくはないでちゅよ。 https://medaka.5ch.net/test/read.cgi/prog/1558225930/19-20 https://medaka.5ch.net/test/read.cgi/prog/1558225930/23
sunagakuuun

2019/05/20 01:05

丁寧な解説ありがとうございます!コードのほうも参考にして、処理の実装に取り組んでみます!
guest

0

html

1<?php 2ini_set('display_errors', true); 3error_reporting(E_ALL); 4 5$count = 1; 6 7if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') === 'POST') { 8 $count = filter_input(INPUT_POST, 'count', FILTER_VALIDATE_INT); 9} 10?><!doctype html> 11<html lang="ja"> 12 <head> 13 <meta charset="UTF-8"> 14 <title>Document</title> 15 </head> 16 <body> 17 <div> 18 <form id="submit_form" method="post" action=""> 19 <select name="count"> 20 <option value="">Please Select</option> 21 <?php for ($i = 2; $i < 7; $i++) : ?> 22 <option value="<?php echo $i; ?>" <?php if ($i === $count) { echo 'selected'; } ?>> 23 <?php echo $i; ?> 24 </option> 25 <?php endfor; ?> 26 </select> 27 player 28 <input type="submit" value="ENTER"> 29 </form> 30 31 <form action=""> 32 <?php for ($i = 0; $i < $count; $i++) : ?> 33 <div> 34 <label for="<?php echo sprintf('player_%d', $i); ?>">氏名</label> 35 <input type="text" name="player_name[]" id="<?php echo sprintf('player_%d', $i); ?>"> 36 </div> 37 <div> 38 <label for="<?php echo sprintf('comment_%d', $i); ?>">コメント</label> 39 <textarea name="player_comment[]" cols="30" rows="4" id="<?php echo sprintf('comment_%d', $i); ?>"></textarea> 40 </div> 41 <?php endfor; ?> 42 <input type="submit" value="ENTER"> 43 </form> 44 </div> 45 </body> 46</html>

投稿2019/05/19 06:09

編集2019/05/19 06:13
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問