PHP上のアンケートフォームで受け取った内容を保存したい
現在PHPでアンケートを作成しており、回答内容をfopen()
などを利用して、後からデータを閲覧、管理できるようにファイル等に保存する機能保存ボタン
を搭載しようと思っています。
- 独学&初学者なので知識等が乏しいです。申し訳ありません。
アンケート入力ページ
と、その入力内容をチェックさせる確認ページ
は作成済みです。保存ボタン
は確認ページ
に設置したいです。- 下記の
@@発生している問題・書き方のわからないコード@@
に質問の要点を記載しております。
確認ページのソースコード
php
1//ここまで省略 2<div class="results"> 3<h4>名前:<?php echo $_POST['userName'] ?></h4> //回答者の名前 4 <h5 id="h5-name"><?php 5 if(empty($_POST['userName'])){ 6 echo "お名前が未入力です。<input type='button' value='戻る' onClick='history.back()'>"; 7 } 8 ?></h5> //未記入を通知、戻るボタン表示 9 <?php foreach ($ques as $que): ?> //質問1〜質問20まで質問文と回答をセットで表示させる 10 <div class="qblock"> 11 <h3><?php echo $que -> getName(); ?></h3> //質問文を表示 12 <p><?php echo implode("、", $_POST[$que -> getName()]) ?></p> //回答内容を配列として表示 13 <h5><?php 14 if(empty(implode($_POST[$que -> getName()]))){ 15 echo "未入力です。<input type='button' value='戻る' onClick='history.back()'>"; 16 } 17 ?></h5> //未記入を通知、戻るボタン表示 18 </div></div> 19<input type="button" value="回答を保存する" onClick=<?php 20 $rtext = "保存したい内容"//ここがわからない 21 $fp = fopen("保存先", "w"); //保存先ファイルを開く //ここもわからない 22 fwrite($fp, $rtext) //ファイルに回答内容を保存 23 fclose($fp); //ファイルを閉じる 24 ?>> 25//以下省略 26
###保存したいテキストの例
(確認ページに表示される"質問"と対応する"回答"のセット)
名前:山田 太郎 【1】スポーツはしていますか? YES 【2】以下の中から好きなスポーツを選んでください(複数選択可能) 野球、サッカー、テニス、バスケ、 【3】好きなスポーツ選手は誰ですか? イチロー //中略/// 【20】悩みはありますか?(複数選択可能) 健康、ダイエット、恋愛、その他、将来への不安、
@@発生している問題・書き方のわからないコード@@
・保存先のファイル名を"$_POST['userName'].txt"(このコードは適当なので恐らく間違っています)のようなイメージで"誰の回答か"を見やすくした個別のファイルをアンケート毎に自動で新規作成したい ・(名前+[質問文1 & 回答1] + [質問文2 & 回答2] +…[20])≒(<div class="results">の中身)をまとめて"保存したい内容"に指定したい(保存したい) ・また、保存先ファイルはどこに作成すれば良いでしょうか?(サーバー上でのデータ管理方法)
試したこと
html2canvas を使用して.png画像として保存しようとしたが、画像が"壊れている"や"フォーマットが違う"等のエラーが出た。 どちらにせよ画像だと管理や活用の幅も狭くなるので却下。
MySQLも触ってみましたが初心者の私にはまだ難しそうなので回避。
補足情報(FW/ツールのバージョンなど)
あまり関係ないかもしれませんが以下の条件で作成しております
0. アンケートの回答方法はradio
/checkbox
/select
/text
など様々
0. ユーザー数は数人程度
0. 一人ずつ回答してもらうためセキュリティ等はとりあえず考慮しない
0. 現在はMANPで開発していますが、完成したらXFREEなどのレンタルサーバーで使用する予定
0. 使用言語はHTML
、CSS
、PHP
、JavaScript
です。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/01 09:27
2021/04/01 09:35