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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

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

Q&A

1回答

1422閲覧

ホームページで入力した情報をCSVでエクスポートしてリスト化する方法を教えて

daisuke0911

総合スコア6

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

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

0グッド

0クリップ

投稿2018/03/06 23:04

編集2018/03/07 03:31

前提・実現したいこと

グーグルフォームのような埋め込み可能なアンケートツールを探しています。
ただのメールフォーム等の場合だと集計が手惑うので大変です。

顧客の数は1アンケートにつき50~1000人程を想定しているので大人数になれば集計が大変になります。

グーグルフォームが機能的にはかなり魅力的なのですが自社サイトに埋め込んだ場合、
右側にアンケートを上下にスクロールする為のバーが表示されてしまったり、
アンケートの下にグーグルフォームを使ってるとの記載が載ってしまい何とも不格好です。

機能としては
①大人数になっても一人一人の名前や2択の回答、メアドなどの情報がリストとして管理できるもの。
②提供元がページ上に表示されないもの。
③入力した情報を自動でリスト化し、回答後は他のページに飛ばしたい。
この条件が最低条件です。

内容としては自由回答(メアドや住所程度の長さ)や選択式回答(多くの場合は2択)ですが3択の場合や、自由回答についても複数行必要な場合もあるので、大は小を兼ねるというように大きめに枠を取っておきたいです。

アンケートはスマホがメインとなるのでスマホやタブレット、PC等ある程度網羅する物が必要です。
アンケート回答後のメアドへの返信は要りませんが回答後、指定のページに飛ばしたいです。

有料での外注は避けたいので自分で作る事を前提とした話となります。
入力フォームから自動でデータベースの方に反映させるという方法は調べて出てきましたが思ったようなプログラムは難しいです。

また、1アンケートにつき50~1000人程度ですが期限は2週間~3カ月程度と幅広くなります。
また、毎日いくつもアンケートを発行し回答が何千と返ってくるのであればかなり分かりづらくなります。
上記の理由から一番の目標としては、ブラウザかメモ、Excelなどで表示でき、印刷可能かつコピー可能な状態としてリスト化できるシステムを作りたいです。

試したこと

試した事としては、まず、「form.html」で得た情報をinput_data.phpで取得してExcelやGymo PDF Editorでリスト化するという方法です。以下は一部変更して省略したform.htmlのコードです。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>タイトル</title> <script type="text/javascript" charset="UTF-8" src="//cache1.value-domain.com/xrea_header.js" async="async"></script> </head> <body> <form method="post" action="input_data.php"> 名前(漢字):<input type="text" name="kannziname" style="width:100px"><br> 名前(フリガナ):<input type="text" name="katakananame" style="width:130px"><br> 自由回答:<input type="text" name="aaa" style="width:60px"><br> 自由回答:<input type="text" name="bbb" style="width:50px"><br> 自由回答<input type="text" name="ccc" style="width:100px"><br> メールアドレス<input type="text" name="mailaddress" style="width:250px"><br> 住所 or LINEのID or LINEのURL<input type="text" name="zyuusyo" style="width:300px"><br><input type="submit" value="決定"> </form> </body> </html>

また、「input_data.php」のコードは以下となります。

<?php //取得した値を変数に代入 $kannziname = $_POST['kannziname']; $katakananame = $_POST['katakananame']; $join = $_POST['aaa']; $ninnzuu = $_POST['bbb']; $allergy = $_POST['ccc']; $mailaddress = $_POST['mailaddress']; $zyuusyo = $_POST['zyuusyo']; if($kannziname == NULL || $katakananame == NULL || $aaa == NULL || $bbb == NULL || $ccc == NULL || $mailaddress == NULL || $zyuusyo == NULL){ print '入力されていない項目があります。'; }else{ //CSVファイルに書き込むデータの準備 $data = '名前(漢字),名前(フリガナ),自由回答,自由回答,自由回答,メールアドレス,住所 or LINEのID or LINEのURL'; //列のタイトル $data .= "\n"; $data .= $kannziname; $data .= ','; $data .= $katakananame; $data .= ','; $data .= $aaa; $data .= ','; $data .= $bbb; $data .= ','; $data .= $ccc; $data .= ','; $data .= $mailaddress; $data .= ','; $data .= $zyuusyo; $data .= "\n"; } $file = fopen('./data.csv', 'w'); fputs($file, $data); fclose($file); ?> <a href="data.csv">CSVファイルのダウンロード</a>

このコードでダウンロードできるようにしたものの、form.htmlで情報を入力するとinput_data.phpに飛んで「CSVファイルのダウンロード」の一文のみが表示され、ダウンロードが可能になりました。
しかし、Excelでは試してないもののGymo PDF Editorでは何も表示されていませんでした。
また、このコードだと回答者が自分の回答をダウンロードできるものの、管理者側が自動でリスト化するという物ではありませんでした。
下記のサイトのコードを参照にしました。
https://kikutoyo.net/blog/php_csv_output

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/06 23:16

fopen 追記 とかで検索すれば回答は見つかっている気がする
kei344

2018/03/07 01:50

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
daisuke0911

2018/03/07 03:31

ありがとうございます!(^^♪
Lhankor_Mhy

2018/03/07 03:50

同様の質問をされていますから、そちらに追記した方がよかったでしょうね……
guest

回答1

0

素直にGoogleフォーム使ったほうがいいのでは。

自分で作る技術のある会社ほどGoogleフォーム使う判断ができてる。
作るのは簡単だけどGoogleフォームと同じものを作るなんて無駄なことはせず使えるものは利用する。

投稿2018/03/06 23:25

kawax

総合スコア10377

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

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

退会済みユーザー

退会済みユーザー

2018/03/06 23:36

グーグルアップス(いまはスイートだっけ?)は1ユーザーあたり幾らとかかかるから使えない場合もそれなりにあるような (特定客ではグーグルにメールを保存している会社とは取引しないという会社もある)
daisuke0911

2018/03/07 03:35

機能的にはそれでいいのですがその後、このプログラムを使ったサイトで営業をかける際や経営していく際にかなり支障が出てくるのでそこは必須条件となりますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問