🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML5

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

PHP

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

HTML

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

Q&A

解決済

1回答

1022閲覧

フォームとフォームの間に文字が入りません。

daichi-onoue

総合スコア53

HTML5

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

PHP

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

HTML

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

0グッド

1クリップ

投稿2019/09/06 00:42

編集2019/09/06 01:42

1ページに4個あるフォームからそれぞれtxt ファイルに書き込みたい

1ページに4個あるフォームからそれぞれ指定したtxtファイルへ一気に書き込みたいです。一気にというのは、ページ下部にある「送信」を押すだけでということです。

発生している問題・エラーメッセージ

一気に書き込むソースはできたのですが、
フォームとフォームの間に文字を入れたいが、
ソースがわかりません。

該当のソースコード

php

1<?php 2$arr = [ '1.txt'=>'inp_01', 3'2.txt'=>'inp_02', 4'3.txt'=>'inp_03', 5'4.txt'=>'inp_04']; 6 7if ($_POST) { 8$msg_arr = []; 9foreach ($arr as $file=>$name) { 10if (!isset($_POST[$name])) continue; 11$text = trim($_POST[$name]); 12if ($text === '') continue; 13file_put_contents($file, $text, LOCK_EX); 14$msg_arr[] = sprintf('<p>file:%s<br>%s</p>', $file, nl2br(htmlspecialchars($text, ENT_QUOTES))); 15} 16$msg = implode('', $msg_arr) . "<p>上記内容で書き込みました<hr></p>"; 17} 18?> 19<!DOCTYPE HTML > 20<html lang="ja"> 21<head> 22<title>ファイルに書き込む</title> 23</head> 24<body> 25<?= isset($msg) ? $msg : "" ?> 26 27<form action="" method="post"> 28<?php 29foreach ($arr as $val) { 30printf('<textarea name="%s"></textarea><br>', $val); 31} 32?> 33<input type="submit"> 34</form> 35</body> 36</html> 37

試したこと

色々試みましたが、どうしてもフォームとフォームの間に文字が入りません。

補足情報

こんな感じで表示させたいです。
イメージ説明

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

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

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

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

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

m.ts10806

2019/09/06 00:53

タイトルといま直面している問題とがあっていないように思います。 タイトル調整願えますか?
m.ts10806

2019/09/06 01:08

「それぞれ指定のtxtファイルに書き込みたい」のままになっていますが、起きているのは「フォームとフォームの間に文字が入りません。」が問題ではないのですか?
daichi-onoue

2019/09/06 01:20

変更しました。 すみませんでした。
Y.H.

2019/09/06 01:39

タグに[C#]がありますが、C#全く関係ないのでタグから削除お願いします。
m.ts10806

2019/09/06 03:25

解決済みにせず放置して続きの質問を立てるとは、よくないですね。
guest

回答1

0

ベストアンサー

php

1foreach ($arr as $txt_name=>$val) { 2 echo <<<EOF 3<div> 4<p>{$txt_name}への書き込み</p> 5<textarea name="{$val}"></textarea> 6</div> 7 8EOF; 9}

foreach()はkey=>valueで取り出せるので、そのkey部分をきちんと書いてあげれば良いだけと思います。

と思ったら、書き込むところで既にそのように使われてますね。

foreach ($arr as $file=>$name) {

 -----

ただ、あるプログラムを早急に作成する必要があるので、

お金払ってやってもらってください。
それに、コメントに書いた内容で充分解決可能です。

投稿2019/09/06 00:48

編集2019/09/06 01:36
m.ts10806

総合スコア80875

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

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

daichi-onoue

2019/09/06 01:06

01.txtへの書き込み 02.txtへの書き込み… の部分を、 カッター ハサミ ノリ ボンド マジック に変更するとどのようなソースになるのでしょうか。
m.ts10806

2019/09/06 01:12 編集

そういう多次元の配列を作ってそれぞれ入れれば良いです。 例えば [ [ 'text_name'=>'1.txt', 'textarea_name'=>'inp_01', 'label'=>'カッター', ], [ 'text_name'=>'2.txt', 'textarea_name'=>'inp_02', 'label'=>'ハサミ', ], //以下略 ]; (ソースを求めすぎるのはよろしくないです。ヒントをもとに考えましょう)
daichi-onoue

2019/09/06 01:21

はじめのphp内に埋め込めばいいのでしょうか? 初心者なので、もう少し具体的なソースを教えていただけにでしょうか。
m.ts10806

2019/09/06 01:26

下記はご自身で書かれたんですよね・・ foreach ($arr as $file=>$name) { ならできそうに思ったのですけど。
m.ts10806

2019/09/06 01:30

「初心者アイコン」も質問に付けておいてください。
daichi-onoue

2019/09/06 01:31

すみません。 周りに色々とSOSを出しながら作ったので、 あまり理解できていません。 ただ、あるプログラムを早急に作成する必要があるので、 教えてください。
m.ts10806

2019/09/06 01:32

あ、ごめんなさい そういうのは自分でやってください。 課題代行、宿題代行のサイトではないので。
m.ts10806

2019/09/06 01:33

それは「教えて」ではなく「やって」です。
daichi-onoue

2019/09/06 01:34

課題、宿題ではなく、 単純に社内システムを自己開発しているだけです。 何のノルマもないのですが、 「こんなのあったら便利だな〜」 という興味本位で作成しています。 教えてください。
m.ts10806

2019/09/06 01:37 編集

ノルマがない興味本位なのに「早急に作成する必要がある」意味が分かりません。 そういう多次元の配列を作ってそれぞれ入れれば良いです。 できちんとその配列の例も出しました。 そこから自分で考えてください。
daichi-onoue

2019/09/06 01:38

このシステムがあれば、 今行なっている業務が格段に効率化されるからです。 早ければ早いほど、システム開発のメリットが大きくなります。
m.ts10806

2019/09/06 02:20 編集

そのような事情は赤の他人である私には関係ありませんし知りません。 それとも私が報酬を得られるのでしょうか? 単なるHTML出力の問題ならHTML部分は全部固定で書けばいい話。 POSTの取得部分も固定で書けばいい話。コードが短くなるだけで処理速度に影響はありません。 (むしろ静的HTMLで書いたほうが速いくらいでは) というかこの程度の内容でシステム開発のメリットが大きくなるように思えませんし、 セキュリティもなにも加味されてないコードで何がいいのか理解に苦しみます。 しっかりお金を払って業者に依頼されたほうが早く確実に良いものができるでしょう。
daichi-onoue

2019/09/06 01:42

<?php $arr = array( '01.txt'=>['name'=>'inp_01','disp'=>'カッター'], '02.txt'=>['name'=>'inp_02','disp'=>'ハサミ'], '03.txt'=>['name'=>'inp_03','disp'=>'ノリ'], '04.txt'=>['name'=>'inp_04','disp'=>'ボンド'], '05.txt'=>['name'=>'inp_05','disp'=>'マジック'], ); $msg = array(); if ($_POST) { foreach ($arr as $file=>$val) { $name = $val['name']; if (!isset($_POST[$name])) die('abort'); file_put_contents($file, $_POST[$name] . PHP_EOL, LOCK_EX); $msg[] = sprintf('%s:%s<br>', $file, htmlspecialchars($_POST[$name], ENT_QUOTES)); } } ?> <!DOCTYPE HTML > <html lang="ja"> <head> <title>ファイルに書き込む</title> </head> <body> <?= count($msg) > 0 ? implode('', $msg) . "上記内容で書き込みました<hr>" : '' ?> <div style="text-align:center"> <form action="main.php" method="post"> <?php foreach ($arr as $val) { $disp = $val['disp']; $name = $val['name']; printf('%s<br><input type="text" name="%s" value="%s"><br>', $disp, $name, isset($_POST[$name]) ? htmlspecialchars($_POST[$name], ENT_QUOTES) : ''); } ?> <input type="submit"> </form> </div> </body> </html>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問