0%

[技能檢定]題組二 步驟18 製作前台問卷投票功能

投票功能的製作,我們利用網址傳遞id的方式讓主題的資訊可以被帶到投票頁面,再據依製作相關的內容。

  1. 建立 /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
    <?php
    //根據網址參數id取得主題資料
    $que=$Que->find($_GET['id']);

    ?>
    <fieldset>
    <legend>目前位置:首頁 > 問卷調查 > <?=$que['text'];?></legend>
    <h3><?=$que['text'];?></h3>

    <form action="./api/vote.php" method="post">
    <?php
    //根據主題的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,這樣就可以在投票時同時計算總票數
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    include_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']}");