アンケートの作り方 : ぺたっとPHPサンプルソースコード |
とにかく需要が多いのがアンケート。業務でも趣味でもページにこれ付けたいって人は多い。
例えば「このページは参考になりましたか? はい いいえ」とか、
「このページはいかがでしたか? 5択」とか。
凝った物などは理解しにくいので、ここでは最もシンプルなものを作り、
そこから拡張する方法を解説する。
基本は$_POSTでデータ受信と同じ。
同じようにアンケートの入力ページを作る。
|
|
これをanke-to.htmlなどとする。
次に上で送られてきたデータを処理するPHPを作るわけだが、基本はデータの書き込み。
やってる事は超簡単。
流れとしては
データを保存するファイルを開く
↓
ファイルの内容を配列に格納
↓
回答があった数字をプラス
↓
データをファイルに書き込み
これだけ。
|
|
これをanke-to.phpなどとする。
HTMLの送信部分である
<input type="radio" name="answer" value="0">
で、答えとなる変数名answerにvalue値として0を送信。
ここで項目を増やすたびにvalueを1、2、3と増やしていくわけ。
今回は2択なのでvalue=0と=1の2行なので$i<2としている。
こうして送られてきたデータは$_POST["answer"]で受け取れる。
PHP部分ではまず先に保存しているデータを
$data=@file('anke-to.txt');
として全ての行を$dataに格納し、
for($i=0; $i<2; $i++){
の部分で格納した配列$data[]に改行を取り除きながら入れていく。(今回の場合2択なので2行なのが固定)
$data[$i]=rtrim($data[$i]);
}
if($_POST['submit']){
データが送られてきた場合に処理を開始、
$data[$_POST['answer']]++;
この場合value値の0が送られてきたら$data[0]、1が送られてきたら$data[1]の値がプラスされる。
書き込みモードでファイルを開き(今回の場合全データをすでに読み込んでいるのでwモードで開く)、
一応ファイルをロックして、行数分データを書き込む。
最後にアンケートを受け取った事を書いたページthanks.htmlなどを用意し、そのページに移動する。
恐らくこれが最も基本となるので、
1行ずつ確実に理解できるとあとの拡張は応用だけなので簡単。
それぞれの関数やオプションなども知らなければリファレンスなどをざっと目を通しておくべき。
ラジオボタンは選択できるのは1つだけなので、
3択でも5択でも個数を増やすだけ。
つまり、form部分のラジオボタンの数、PHPの読み込み&書き込み部分の$i<○の数をそれぞれ必要な分だけ増やす。
また、いくつものアンケートを載せる場合はname="answer"を変更したフォームを必要な数だけ書き、
その分の$i<○の数を増やし、$data[$_POST['answer']]++;のanswerを書き換えたものを同じ数だけ書けばいい。(form間の送信ボタンは最後にひとつだけでいい)
テキストボックスを追加するにしてもその変数を受け取るだけなので「POSTでデータ受信」が理解できていれば問題ない。
チェックボックスは若干面倒で、
複数回答可などの場合はname="checkbox[]"(選択項目全て同じ変数名+[]、数字は入れない)とすると$_POST["checkbox"][0](選択項目の数だけ0、1、2と増えていく)で取り出せる。
どういった形でデータが送られてくるかなども受け取ったデータをprint_r($_POST);で表示させたりして試して欲しい。
もちろん「はい いいえ」だけならわざわざラジオボタンではなく単にボタンでいいのだが、 アンケートの基本サンプルという意味でそうしている。
ちなみに、アンケートページそのものなら別に必要ないのだが、 ページ最下部やサイドメニューにちょっと表示させるだけなら、 アンケート部分はiframeやjavascriptなどを使い、アンケートを送信してもその部分だけが書き換わるようにしていると、 ページ全体が変位しないので見ている人にやさしいかもしれない。
当サイト「ぺたっとPHPサンプルソースコード」は、初めてPHPを触る初心者でもすぐにPHPプログラミングができる・分かるサイトです。
PHPのサンプル
0から始めるPHP
日記