投票功能的製作,我們利用網址傳遞id的方式讓主題的資訊可以被帶到投票頁面,再據依製作相關的內容。
- 建立
/front/vote.php
檔案,並撰寫投票功能1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//根據網址參數id取得主題資料
$que=$Que->find($_GET['id']);
<fieldset>
<legend>目前位置:首頁 > 問卷調查 > $que['text']; </legend>
<h3>$que['text']; </h3>
<form action="./api/vote.php" method="post">
//根據主題的id取得所有的選項
$opts=$Que->all(['subject_id'=>$_GET['id']]);
foreach($opts as $opt){
echo "<div>";
echo "<input type='radio' name='opt' value='{$opt['id']}'>";
echo $opt['text'];
echo "</div>";
}
<div class="ct">
<input type="submit" value="我要投票">
</div>
</form>
</fieldset>
- 撰寫投票紀錄程式,這邊我們會根據投票的選項再去找出主題,並讓主題的投票數也跟著加1,這樣就可以在投票時同時計算總票數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21include_once 'db.php';
//根據表單資料取出被選擇的選項資料
$opt=$Que->find($_POST['opt']);
//票數資料加1
$opt['vote']++;
//更新選項資料
$Que->save($opt);
//根據選項資料的subject_id欄位來取得主題資料
$sub=$Que->find($opt['subject_id']);
//主題票數資料加1
$sub['vote']++;
//更新主題資料
$Que->save($sub);
to("../index.php?do=result&id={$sub['id']}");