Hallo sahabat Dumenity berjumpa lagi dalam tutorial kursuswebprogramming, pada tutorial kali ini kita akan belajar tentang cara membuat skrip polling untuk rating menggunakan PHP. Dalam tutorial ini, kita akan belajar cara membuat skrip polling untuk rating menggunakan PHP. Dalam contoh skrip ini ada pertanyaan dengan beberapa opsi untuk menambahkan peringkat pengguna dalam melakukan penilaian. Setelah menyerahkan peringkat polling, persentase peringkat keseluruhan untuk semua opsi akan ditampilkan kepada pengguna.
Dalam skrip ini, saya telah menggunakan jQuery AJAX untuk menampilkan opsi penilaian dan menyimpan opsi penilaian dari pengguna ke dalam tabel database backend. ID sesi pengguna didefinisikan di awal dan peringkat polling disimpan ke dalam database untuk sesi pengguna. Pada saat mengklik berikutnya, pertanyaan tanpa tanggal berikutnya akan ditampilkan kepada pengguna.
Script untuk Menambahkan Peringkat
Di bagian ini, kita akan membaca pertanyaan dan pilihan penilaian dari database untuk menunjukkan mereka untuk penilaian pengguna. Saya mengirim panggilan AJAX ke skrip PHP untuk mendapatkan pertanyaan yang belum diberi nilai oleh pengguna. Skrip ini akan menanggapi penilaian HTML kepada pengguna untuk mengirimkan nilainya. AJAX jQuery dan skrip PHP ditampilkan di bawah ini.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function show_poll(){ $.ajax({ type: "POST", url: "show-poll.php", processData : false, beforeSend: function() { $("#overlay").show(); }, success: function(responseHTML){ $("#overlay").hide(); $("#poll-content").html(responseHTML); } }); } |
show-poll.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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php session_start(); $_SESSION["member_id"] = 1; require("dbcontroller.php"); $dbController = new DBController(); $query = "SELECT DISTINCT question_id from tbl_poll WHERE member_id = " . $_SESSION["member_id"]; $result = $dbController->getIds($query); $condition = ""; if(!empty($result)) { $condition = " WHERE id NOT IN (" . implode(",", $result) . ")"; } $query = "SELECT * FROM `tbl_question` " . $condition . " limit 1"; $questions = $dbController->runQuery($query); if(!empty($questions)) { ?> <div class="question"><?php echo $questions[0]["question"]; ?><input type="hidden" name="question" id="question" value="<?php echo $questions[0]["id"]; ?>" ></div> <?php $query = "SELECT * FROM tbl_answer WHERE question_id = " . $questions[0]["id"]; $answers = $dbController->runQuery($query); if(!empty($answers)) { foreach($answers as $k=>$v) { ?> <div class="question"><input type="radio" name="answer" class="radio-input" value="<?php echo $answers[$k]["id"]; ?>" /><?php echo $answers[$k]["answer"]; ?></div> <?php } } ?> <div class="poll-bottom"> <button id="btnSubmit" onClick="addPoll()">Submit</button> </div> <?php } else { ?> <div class='error'>No Questions Found</div> <?php } ?> |
save-poll.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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php session_start(); require("dbcontroller.php"); $dbController = new DBController(); $answer_id = $_POST['answer']; $question_id = $_POST['question']; $query = "INSERT INTO tbl_poll(question_id,answer_id,member_id) VALUES ('" . $question_id ."','" . $answer_id . "','" . $_SESSION["member_id"] . "')"; $insert_id = $dbController->insertQuery($query); if(!empty($insert_id)) { $query = "SELECT * FROM tbl_answer WHERE question_id = " . $question_id; $answer = $dbController->runQuery($query); } if(!empty($answer)) { ?> <div class="poll-heading"> Rating </div> <?php $query = "SELECT count(answer_id) as total_count FROM tbl_poll WHERE question_id = " . $question_id; $total_rating = $dbController->runQuery($query); foreach($answer as $k=>$v) { $query = "SELECT count(answer_id) as answer_count FROM tbl_poll WHERE question_id = " .$question_id . " AND answer_id = " . $answer[$k]["id"]; $answer_rating = $dbController->runQuery($query); $answers_count = 0; if(!empty($answer_rating)) { $answers_count = $answer_rating[0]["answer_count"]; } $percentage = 0; if(!empty($total_rating)) { $percentage = ( $answers_count / $total_rating[0]["total_count"] ) * 100; if(is_float($percentage)) { $percentage = number_format($percentage,2); } } ?> <div class="answer-rating"> <span class="answer-text"><?php echo $answer[$k]["answer"]; ?></span><span class="answer-count"> <?php echo $percentage . "%"; ?></span></div> <?php } } ?> <div class="poll-bottom"> <button class="next-link" onClick="show_poll();">Next</button> </div> |
Oke itulah tadi pembahasan dari saya tentang cara membuat skrip polling untuk rating menggunakan PHP, semoga bermanfaat. Untuk melihat hasilnya silahkan coba sendiri.