本日は簡単なアンケートフォームの作成。
enquete.txtという名前の新規テキストファイルを作成し、以下のように入力してください。
0
0
0
0
0
0
0
0
下記ソースに出てくる$fighterの数の文だけ0を用意します。
ラジオボタンから $ed で選手識別番号を受け取る
↓
ラジオボタンで選択された項目の数を1増やす
↓
enquete.txt を書き込みモードで開き、新しい値を一行ずつ書き込む
↓
$edに10をかけた数を $w に代入、イメージのwidthにする
ソースはこちら↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>アンケート</title>
</head>
<body>
<form method="post" action="enquete.php">
PRIDE無差別級グランプリで優勝するのは?<br><br>
<?php
$fighter = array('吉田', 'ミルコ', '藤田', 'シウバ', 'ノゲイラ', 'ファブリシオ', 'ジョシュ', 'ハント');
// for文を使ってラジオボタンを表示。POSTメソッドの変数 cn に選択された項目の番号が入る(上から0,1,2,3,4)。
for ($i = 0; $i < count($fighter); $i++) {
print "<input type='radio' name='cn' value='$i'>{$fighter[$i]}<br>\n";
}
?>
<br>
<input type="submit" name="submit" value="投票">
</form>
<table border='1'>
<?php
// テキストファイルを $ed に格納
$ed = file('enquete.txt');
// rtrim -- 文字列の最後から空白 (もしくは他の文字) を削除する。
for ($i = 0; $i < count($fighter); $i++) $ed[$i] = rtrim($ed[$i]);
// 投票ボタンが押されたらif文の中の処理を行う。
if ($_POST['submit']) {
// ラジオボタンで選択された項目の値をひとつ増やす。
$ed[$_POST['cn']]++;
// ファイルを書き込みモードで開き、新しい値を一行ずつ書き込んでいく。
$fp = fopen('enquete.txt', 'w');
for ($i = 0; $i < count($fighter); $i++) {
fwrite($fp, $ed[$i] . "\n");
}
fclose($fp);
}
for ($i = 0; $i < count($fighter); $i++) {
print "<tr>";
print "<td>{$fighter[$i]}</td>";
print "<td><table><tr><td>";
$w = $ed[$i] * 10;
print "<img src=\"bar.gif\" width='$w' height=15></td>";
print "<td>{$ed[$i]} 票</td>";
print "</tr></table></td>";
print "</tr>\n";
}
?>
</table>
</body>
</html>
サンプル画面はこちら