PHPによるアンケート回答結果のCSV保存

このQ&Aのポイント
  • PHPを使用して作成したアンケート回答結果をCSVファイルに保存する方法について教えてください。
  • アンケートの回答ボタンを押すと、回答内容がCSVファイルに反映されるようにしたいです。
  • 現在回答ボタンを押してもCSVに保存されず、困っています。どなたか助けていただけないでしょうか。
回答を見る
  • ベストアンサー

phpによるアンケート csvに保存

<html> <p> </p> <Div Align="center"> <h3>アンケート</h3> <form name="form" action="log.csv" method="GET"> <div> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> 好きなスポーツ: <select name="favorite_sports"> <option value="バスケットボール">バスケットボール</option><br> <option value="野球">野球</option><br> <option value="サッカー">サッカー</option><br> <option value="テニス">テニス</option><br> </select><br> <br> <p> 満足度をこたえてください<br> <input type="checkbox" name="check1" value="満足"/> 満足<br> <input type="checkbox" name="check2" value="やや満足"/>やや満足 <br> <input type="checkbox" name="check3" value="ふつう"/> 普通<br> <input type="checkbox" name="check3" value="やや不満"/> やや不満<br> <input type="checkbox" name="check3" value="不満"/> 不満<br> </p> <p> <p> <input type="submit" name="submit" value="回答"> </p> <?php if( isset( $_POST[ 'log.csv' ] ) ){ //テキストボックス「log.csv」に入力された内容を表示 print "送信された内容は{$_POST['log.csv']}です。\n"; } ?> </div> </body> </html> 回答ボタンを押すと内容をcsvに保存するアンケートを作りたいのですがcsvに全く反映されて内容で困っております。どなたか助けてほしいです

  • PHP
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

type="submit"のボタンが押されたとき,ブラウザはform要素のaction属性で指定されているURIを, method属性で指定したメソッドで呼び出します。 今回の場合,actionはlog.csvでmethodがGETですから, log.csv?simei=XX&gender=YY&favorite_sports=ZZ&check1=WW&submit=UU を相対パスとしてブラウザのURI入力欄に入力したのと同じ扱いになります。 まず, ・form要素のaction属性は,入力されたデータを受け取るPHPファイルのURIにする ・$_POSTで受け取るのであれば,form要素のmethod属性は,POSTとする ことが必要です。 そして,PHPファイル中でCSVに保存する処理をちゃんと書く必要があります。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

すみません、どこで「csvに保存」する処理をしているのですか? <form name="form" action="log.csv" method="GET"> だと、 ~/log.csv というURLにアクセスするだけで、log.csvというファイルに保存されるわけではありませんよ。

関連するQ&A

  • php アンケートについての質問

    アンケートフォームを作成しました。回答ボタンを押すとcsvファイルにアンケート結果の内容を保存できるように造りたいのですが参考になるようなものがなくて困っています。どなたか参考になるようなソースなどをお教えくださると助かります。 <HTML> <HEAD> <TITLE>テキスト送信のテスト></TITLE> </HEAD> <FORM name="form1"method="post" action="view.php"> <Div Align="center">名前:<BR> <INPUT type="text"name="onamae"> <BR> 性別:<BR> <INPUT type="radio"name="gender" value="男">男<BR> <INPUT type="radio"name="gender" value="女">女<BR> <BR> <SELECT name="syokugyou"> <OPTION value""selectd>職業をえらんでください</OPTION> <OPTION value"学生">学生</OPTION> <OPTION value"会社員">会社員</OPTION> <OPTION value"公務員">公務員</OPTION> <OPTION value"自営業">自営業</OPTION> <OPTION value"その他">その他</OPTION> </SELECT><BR> <p></p> 満足度を答えてください:<BR> <INPUT type="checkbox" name="hobby[]" value="満足"> 満足<BR> <INPUT type="checkbox" name="hobby[]" value="やや満足"> やや満足<BR> <INPUT type="checkbox" name="hobby[]" value="普通"> 普通<BR> <INPUT type="checkbox" name="hobby[]" value="やや不満"> やや不満<BR> <INPUT type="checkbox" name="hobby[]" value="不満"> 不満<BR> <BR> <INPUT type="submit" value="回答"> </div> </FORM> </BOBY> </HTML> <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BOBY> <p> <Div Align="center">名前</p> <?php print $_POST["onamae"]; ?> <p> <?php if(isset($_POST["gender"])&&($_POST["gender"]=="男"|| $_POST["gender"]=="女")){ print"性別:<BR>"; print $_POST["gender"]; }else{ print"性別を選んでください。<BR>"; } ?> <p> </p> <?php if($_POST["syokugyou"]<>""){ print"職業:<BR>"; print$_POST["syokugyou"]; }else{ print"職業をえらんでください<BR>"; } ?> <p>

    • ベストアンサー
    • PHP
  • php CSVファイル出力後その結果をブラウザ

    php CSVファイル出力後その結果をブラウザに返す処理について 先ほど質問しどう頑張ってもエラーがでてしまい自分の力ではもう無理だと思い再度質問させていただきました。アンケートフォーム→回答ボタンを押すとCSVファイル変換後(ここまではできてます)その後CSVファイルの内容をブラウザに返したいのですがうまくいきません。どなたかたすけてほしいです。良い回答が得られないようならば諦めることにいたします。批判、中傷のコメントは受け付けません。 <HTML> <HEAD> <TITLE>テキスト送信のテスト></TITLE> </HEAD> <FORM name="toi_5.html"method="post" action="toi51.php"> <Div Align="center">名前:<BR> <INPUT type="text"name="onamae"> <BR> 性別:<BR> <INPUT type="radio"name="gender" value="男">男<BR> <INPUT type="radio"name="gender" value="女">女<BR> <BR> <SELECT name="syokugyou"> <OPTION value""selectd>職業をえらんでください</OPTION> <OPTION value"学生">学生</OPTION> <OPTION value"会社員">会社員</OPTION> <OPTION value"公務員">公務員</OPTION> <OPTION value"自営業">自営業</OPTION> <OPTION value"その他">その他</OPTION> </SELECT><BR> <p></p> 満足度を答えてください:<BR> <INPUT type="checkbox" name="hobby[]" value="満足"> 満足<BR> <INPUT type="checkbox" name="hobby[]" value="やや満足"> やや満足<BR> <INPUT type="checkbox" name="hobby[]" value="普通"> 普通<BR> <INPUT type="checkbox" name="hobby[]" value="やや不満"> やや不満<BR> <INPUT type="checkbox" name="hobby[]" value="不満"> 不満<BR> <BR> <INPUT type="submit" value="回答"> </div> </FORM> </BOBY> </HTML> <?php if(isset($_post["gender"])&&($_post["gender"]=="男"|| $_POST["gender"]=="女")){ print"性別:<BR>"; print $_POST["gender"]; }else{ print"性別を選んでください。<br>"; } ?> ?> <p> <?php if($_post["syokugyou"]<>""){ print"職業:<br>"; print$_post["syokugyou"]; }else{ print"職業をえらんでください<br>"; } ?> <p> <br>満足度 <?php if(isset($_post["hobby"])){ $hobby=implode($_post["hobby"]); print $hobby; }else{ } ?> <?php // 保存 $fileName = "log.csv"; header('Content-Disposition: attachment; filename=' . $fileName); ?> </div> </body> </html>

    • ベストアンサー
    • PHP
  • php ファイルの書き込み読みだし

    htmlフォームから回答 phpで処理計算しlog.csvに保存、log.csvファイルを読みだしその結果をブラウザに表示するスクリプトを書いておりますが、log.csvファイルを読みだして結果を表示の部分が調べてもできなくて困っております。どなたか知恵を貸してほしいです。批判や中傷などは書かないでください。 <HTML> <HEAD> <TITLE>テキスト送信のテスト></TITLE> </HEAD> <FORM name="toi_5.html"method="post" action="toi5.php"> <Div Align="center">名前:<BR> <INPUT type="text"name="onamae"> <BR> 性別:<BR> <INPUT type="radio"name="gender" value="男">男<BR> <INPUT type="radio"name="gender" value="女">女<BR> <BR> <SELECT name="syokugyou"> <OPTION value""selectd>職業をえらんでください</OPTION> <OPTION value"学生">学生</OPTION> <OPTION value"会社員">会社員</OPTION> <OPTION value"公務員">公務員</OPTION> <OPTION value"自営業">自営業</OPTION> <OPTION value"その他">その他</OPTION> </SELECT><BR> <p></p> 満足度を答えてください:<BR> <INPUT type="checkbox" name="hobby[]" value="満足"> 満足<BR> <INPUT type="checkbox" name="hobby[]" value="やや満足"> やや満足<BR> <INPUT type="checkbox" name="hobby[]" value="普通"> 普通<BR> <INPUT type="checkbox" name="hobby[]" value="やや不満"> やや不満<BR> <INPUT type="checkbox" name="hobby[]" value="不満"> 不満<BR> <BR> <INPUT type="submit" value="回答"> </div> </FORM> </BOBY> </HTML> <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BOBY> <p> <Div Align="center">名前</p> <?php print $_POST["onamae"]; ?> <p> <?php if(isset($_POST["gender"])&&($_POST["gender"]=="男"|| $_POST["gender"]=="女")){ print"性別:<BR>"; print $_POST["gender"]; }else{ print"性別を選んでください。<BR>"; } ?> <?php session_start(); if (isset($_SESSION["gender"])) { $_SESSION["gender"]++; print($_SESSION["gender"]."回目"); } else { $_SESSION["gender"] = 0; } ?> <p> </p> <?php if($_POST["syokugyou"]<>""){ print"職業:<BR>"; print$_POST["syokugyou"]; }else{ print"職業をえらんでください<BR>"; } ?> <?php if (isset($_SESSION["syokugyou"])) { $_SESSION["syokugyou"]++; print($_SESSION["syokugyou"]."回目"); } else { $_SESSION["syokugyou"] = 0; } ?> <p> </p> 満足度を答えてください<BR> <?php if(isset($_POST["hobby"])){ $hobby=implode($_POST["hobby"]); print $hobby; }else{ } ?> <?php if (isset($_SESSION["hobby"])) { $_SESSION["hobby"]++; print($_SESSION["hobby"]."回目"); } else { $_SESSION["hobby"] = 0; } ?> <?php // 出力 $fileName = "log.csv"; header('Content-Disposition: attachment; filename=' . $fileName); ?> </div> </body> </html> </BOBY> </HTML>

    • ベストアンサー
    • PHP
  • php アンケートについての質問

    htmlのフォームから送信 phpでアンケート結果を受け取る ようなものを書きましたがphpの受け取る処理でエラーが起きてしまうので@を書いて何とか動くようにしました。@を使わずにエラーを修正したいのですがうまくいきません。どなたか助けてさい <html> <p> </p> <h3>アンケート</h3> <form name="form" action="upload1.php" method="GET"> <body bgcolor="#f40fff" text="#ffffff"> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> この大学を何で知りましたか?<br> <input type="checkbox" name="check1" value="メディア媒体"/> メディア媒体で<br> <input type="checkbox" name="check2" value="イラスト"/> イラストで<br> <input type="checkbox" name="check3" value="その他"/> その他<br> </p> <p> 最近ハマっていることは?<br> <input type="checkbox" name="check4" value="サークル、部活"/> サークル部活など<br> <input type="checkbox" name="check5" value="得にない"/> 得にない<br> <input type="checkbox" name="check6" value="その他"/> その他<br> </p> <p> 今やりたいことは?<br> <input type="checkbox" name="check7" value="課題"/> 課題など<br> <input type="checkbox" name="check8" value="得にない"/> 得にない<br> <input type="checkbox" name="check9" value="その他"/> その他<br> </p> <p> <input type="submit" name="submit" value="送信"> </p> </body> </html> php <html> <body bgcolor="#f40fff" text="#ffffff"> <p> </p> <h3>アンケート</h3> <p> <?php print(date('A:g時i分s秒').'<br>'); ?> <b>お名前:</b><br> <?php print( @$_REQUEST["simei"] ); ?> </p> <p> <b>性別:</b><br> <?php print( @$_REQUEST["gender"] ); ?> </p> <p> <b>この大学を何で知りましたか:</b><br> <?php print( @$_REQUEST["check1"] ); ?><br> <?php print( @$_REQUEST["check2"] ); ?><br> <?php print( @$_REQUEST["check3"] ); ?><br> </p> <p> <b>最近ハマっていることは:</b><br> <?php print( @$_REQUEST["check4"] ); ?><br> <?php print( @$_REQUEST["check5"] ); ?><br> <?php print( @$_REQUEST["check6"] ); ?><br> </p> <p> <b>今やりたいことは:</b><br> <?php print( @$_REQUEST["check7"] ); ?><br> <?php print( @$_REQUEST["check8"] ); ?><br> <?php print( @$_REQUEST["check9"] ); ?><br> </p> <p> <?php $life = 60 * 60 * 24 * 30; if(isset($_COOKIE["count"])) { $count = $_COOKIE["count"] + 1; } else { $count = 1; } setcookie("count", $count, time() + $life); ?> <?php echo $count, "回目の訪問です。\n"; ?> </body>

    • ベストアンサー
    • PHP
  • phpに関する質問

    phpでフォームに入力して送信ボタンを押したらアンケートの集計をphpの方に出力するプログラムを作っているのですがhtmlのほうは問題なく動くのですがphpのほうが入力したものが反映されなくて非常にこまっていますどなたかたすけてください ここからhtml <html> <p> </p> <h3>アンケート</h3> <form name="form" action="kadai.php" method="GET"> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> この~を何で知りましたか?<br> <input type="checkbox" name="check1" value="メディア媒体"/> メディア媒体で<br> <input type="checkbox" name="check2" value="イラスト"/> イラストで<br> <input type="checkbox" name="check3" value="その他"/> その他<br> </p> <p> 最近ハマっていることは?<br> <input type="checkbox" name="check4" value="サークル、部活"/> 部活など<br> <input type="checkbox" name="check5" value="得にない"/> 得にない<br> <input type="checkbox" name="check6" value="その他"/> その他<br> </p> <p> <input type="submit" name="submit" value="上記内容で送信"> </p> </form> </body> </html> ここからphp <html> <p> </p> <h3>アンケート</h3> <p> <b>下記の内容でお問合せを受付けました。<br> ありがとうございました。</b> </p> <p> <b>お名前:</b><br> <?php print( $_REQUEST["simei"] ); ?> </p> <p> <b>性別:</b><br> <?php print( $_REQUEST["gender"] ); ?> </p> <p> <b>この~を何で知りましたか:</b><br> <?php print( $_REQUEST["check1"] ); ?><br> <?php print( $_REQUEST["check2"] ); ?><br> <?php print( $_REQUEST["check3"] ); ?><br> </p> <p> <b>最近ハマっていることは:</b><br> <?php print( $_REQUEST["check4"] ); ?><br> <?php print( $_REQUEST["check5"] ); ?><br> <?php print( $_REQUEST["check6"] ); ?><br> </p> <p> </body> </html>

    • ベストアンサー
    • PHP
  • ドロップダウンメニューで選択された内容通りにチェックを入れるJS

    ドロップダウンメニューで選択された内容通りにチェックを入れるJS をご教示下さい。 なお、本番環境で対象とするチェックボックスのnameは、全てchkで始まっている法則性があります。 よろしくお願い致します。 <html> <head> <script type="text/javascript"> <!-- // --> </script> </head> <body> <form> <select name="myselect"> <option selected>全てにチェック</option> <option>全てチェック解除</option> <option>奇数だけチェック</option> <option>偶数だけチェック</option> <option>1、6、8番だけチェック</option> <option>3番以降全てチェック</option> </select> <br> <input type="checkbox" value="1" name="chk01" checked>1番<br> <input type="checkbox" value="1" name="chk02" checked>2番<br> <input type="checkbox" value="1" name="chk03" checked>3番<br> <input type="checkbox" value="1" name="chk04" checked>4番<br> <input type="checkbox" value="1" name="chk05" checked>5番<br> <input type="checkbox" value="1" name="chk06" checked>6番<br> <input type="checkbox" value="1" name="chk07" checked>7番<br> <input type="checkbox" value="1" name="chk08" checked>8番<br> <input type="checkbox" value="1" name="chk09" checked>9番<br> <input type="checkbox" value="1" name="chk10" checked>10番 </form> </body> </html>

  • メール問い合わせフォームがうまく表示されません

    現在ホームページを作成していて、 メール問い合わせフォームをうめこんだのですが、 必要事項を入力して「送信する」ボタンをおしてメール送信画面に移ると、 入力した文字が化けてしまいます。 どなたか修正方法をお教えいただけませんでしょうか。 宜しくお願い致します。 ≪HTML メール問い合わせ部分≫ <div class="contactBox clearfix">ヘアレスキュー・カプラに関するご質問・お問い合わせは、以下のフォームよりご連絡 ください。 <br> <form method="post" action="mailto:info@ka***.jp"> <p>お名前<br> <input size="20" name="name" type="text"></p> <p>メールアドレス<br> <input size="40" name="mail_address" type="text"></p> <p>性別<br> <input name="gender1" value="1" type="checkbox">男性  <input name="gender2" value="1" type="checkbox">女性</p> <p>お問い合わせ内容<br> <select name="seg"> <option selected="selected">選択してください</option> <option value="1">メニューについて</option> <option value="2">料金について</option> <option value="3">予約について</option> <option value="4">ヘアスタイルについて</option> <option value="5">その他</option> </select> </p> <p>詳細<br> <textarea rows="5" cols="60" name="comment"></textarea></p> <p><input value="送信する" type="submit"></p> </form> </div>

  • WEBアンケート

    WEBで簡単なアンケートを取ろうと思い、form を書いたのですが、一部、思ったようになりません。 お知恵をお貸しください。 希望するメール本文は、 Q1の回答, Q2aのチェック状況, Q2aの自由記述、Q2bのチェック状況,Q2cのチェック状況, Q2cの自由記述、Q2dのチェック状況 というカンマで区切られた回答一覧なのですが、 Q1に関しては希望した動作になりますが、Q2が、チェックを入れても入れなくても、チェック状況はa,b,c,d が帰ってきます。 チェックをしないとき、該当項目が空欄になる、あるいは別の文字になるようにする方法、教えてください。 <html> <body> <form onsubmit="return sendmail(this)"> <b>Q1</b> <br> <select name="Q1"> <option selected value="3">改善された</option> <option value="2">変わらない</option> <option value="1">改悪された</option> <option value="0">わからない</option> </select><br> <br> <b>Q2</b> <br> <input type="checkbox" value="a" name="Q2"> 項目 <input style="HEIGHT: 20px; WIDTH: 271px" size="25" name="Q4a1">が欠如している<br> <input type="checkbox" value="b" name="Q2"> 必要十分である<br> <input type="checkbox" value="c" name="Q2"> 不要な項目 <input style="HEIGHT: 20px; WIDTH: 326px" size="24" name="Q4c1">がある<br> <input type="checkbox" value="d" name="Q2"> わからない<br> <br> <br> <input style="HEIGHT: 53px; WIDTH: 109px" size="13" type="submit" value="メール作成" name="send"> <script type="text/javascript"> F=document.getElementsByTagName('form')[0]; function sendmail(F){ title = [ 'アンケート回答' ].join('%20'); cmnd = [ F.elements[0].value,",", F.elements[1].value,",", F.elements[2].value,",", F.elements[3].value,",", F.elements[4].value,",", F.elements[5].value,",", F.elements[6].value ].join('%20'); location.href="mailto:hoge@hoge?subject=" + title + "&body=" + cmnd; return false; } </script></form>

    • ベストアンサー
    • HTML
  • セレクト選択時にチェックボックスをオフにしたい

    フォームでセレクトを選択すると、連動してチェックボックスをオフにする仕組みを作りたいのですが、分からずjavascriptで解決できないかと思っております。 現在の問題は test1をセレクトし、オプション1のいずれかのチェックボックスにチェックをしたあと、 セレクトを再度し直し、test3を選びオプション3でいずれかのチェックボックスにチェックした場合、 オプション1で選んだチェックボックスの内容も送信されることです。 セレクトで、何かを選択したらチェックボックスがオフされるようになればと思っております。 ちなみに同じページ内にチェックボックスが複数あります。 <html> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function(){ $(".station").addClass('hide'); $("#hoge").change(function(){ $(".station").addClass('hide'); $('#' + $("#hoge option:selected").attr("class")).removeClass("hide"); });}) </script> <style type="text/css"> <!-- .hide{display:none;} --> </style><body><form> <select name="c_s" id="hoge"> <option value="none" selected="selected" class="">選択して下さい</option> <option value="test1" class="c1_1">test1</option> <option value="test2" class="c1_2">test2</option> <option value="test3" class="c1_3">test3</option> </select> <div id="c1_1" class="station opt"> オプション1<br /> <input type="checkbox" name="option1" id="option" value="ch_option1" />ch_option1<br /> <input type="checkbox" name="option2" id="option" value="ch_option2" />ch_option2<br /> </div> <div id="c1_2" class="station opt"> オプション2<br /> <input type="checkbox" name="option11" id="option" value="ch_option11" />ch_option11<br /> <input type="checkbox" name="option12" id="option" value="ch_option12" />ch_option12<br /> <input type="checkbox" name="option13" id="option" value="ch_option13" />ch_option13<br /> </div> <div id="c1_3" class="station opt"> オプション3<br /> <input type="checkbox" name="option21" id="option" value="ch_option21" />ch_option21<br /> <input type="checkbox" name="option22" id="option" value="ch_option22" />ch_option22<br /> </div> </form></body></html>

  • アンケートフォームがうまく動かない

    プロバイダーは日本テレコム、レンタルサーバーはロリポップです。 以下のように、アンケートフォームを作りました。 <FORM ACTION="/cgi-bin/enquete.cgi?user=○○○○&address=○○○○@○○" METHOD="post"> 名前 <INPUT TYPE="text" NAME="name" SIZE="18" maxlength="30"><br><br> 居住地(都道府県のみ) <INPUT TYPE="text" NAME="house" SIZE="18" maxlength="30"><br><br> メールアドレス <INPUT TYPE="text" NAME="name" SIZE="18" maxlength="30"><br><br> 年齢 <input type="checkbox"name="old"value="19歳以下">19歳以下 <input type="checkbox"name="old"value="20~25歳未満">20~25歳未満 <input type="checkbox"name="old"value="25~30歳未満">25~30歳未満 <input type="checkbox"name="old"value="30~35歳未満">30~35歳未満 <input type="checkbox"name="old"value="35~40歳未満">35~40歳未満 <input type="checkbox"name="old"value="40~45歳未満">40~45歳未満 <input type="checkbox"name="old"value="45~50歳未満">45~50歳未満 <input type="checkbox"name="old"value="50歳以上">50歳以上<br><br> アンケートにご協力いただきましてありがとうございました。<br><br> <INPUT TYPE="SUBMIT" VALUE="送信する"> <INPUT TYPE="RESET" VALUE="書き直す"> </FORM> 以上のようなものです。 ですが、送信ボタンを押しても、ロリポップ側で、「指定されたページ(URL)は見つかりません。」と出ます。 上部の○○部分、2つありますが、後半のほうは送信先となるアドレスを記入しますよね。最初のほうの○○には何を記入するのですか? といいますか・・・上のHTMLは全然ダメですか? できるだけ平易に教えていただけましたらと思います。

専門家に質問してみよう