Baca Juga :  Cara Memasang Google Analytics di WordPress untuk Pemula

Membuat Polling PHP Sederhana

1 495

Dalam tutorial ini, kita akan belajar membuat script polling untuk penilaian menggunakan PHP. Dalam tutorial sebelumnya, kita telah membuat rating PHP menggunakan jQuery. Dalam contoh skrip polling ini, ada beberapa pertanyaan dengan beberapa opsi untuk menambahkan rating pengguna dalam polling. Setelah mengirimkan peringkat polling, persentase keseluruhan untuk semua opsi akan ditampilkan kepada pengguna.

Dalam skrip ini, saya telah menggunakan jQuery AJAX untuk menampilkan pilihan polling dan menyimpan pilihan polling pengguna ke dalam tabel database backend. Id sesi pengguna didefinisikan di awal dan peringkat polling disimpan ke dalam database untuk sesi pengguna. Saat mengklik berikutnya, pertanyaan unrated berikutnya akan ditampilkan kepada pengguna.

Tetapkan Pilihan Polling untuk Menambahkan Rating

Pada bagian ini, kita akan membaca pertanyaan dan pilihan polling dari database untuk menunjukkan rating pengguna. Saya mengirim panggilan AJAX ke skrip PHP untuk mendapatkan pertanyaan yang belum dinilai oleh pengguna. Script ini akan merespon polling HTML kepada pengguna untuk menyerahkan rating mereka. AJAX jQuery dan skrip PHP ditunjukkan di bawah ini.

Baca Juga :  Membuat Form Contact dengan PHP Captcha
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

<?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 
    }
?>

Simpan Rating menggunakan jQuery AJAX

Pada bagian ini, saya menerima user rating dan mengirimkannya ke script PHP untuk mengupdate rating database. Saat mengirimkan rating polling, ia meminta fungsi jQuery AJAX untuk meminta PHP memperbarui rating. Setelah memperbarui tabel penilaian, tanggapan akan menunjukkan keseluruhan nilai dalam persentase. Kode PHP dan AJAX adalah,

function addPoll() {
	if($("input[name='answer']:checked").length != 0){
		var answer = $("input[name='answer']:checked").val();
		$.ajax({
			type: "POST", 
			url: "save-poll.php", 
			data : "question="+$("#question").val()+"&answer="+$("input[name='answer']:checked").val(),
			processData : false,
			beforeSend: function() {
				$("#overlay").show();
			},
			success: function(responseHTML){
				$("#overlay").hide();	
				$("#poll-content").html(responseHTML);				
			}
		});
			
	}
}

save-poll.php

<?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>

Keluaran Skrip Polling

Berikut screenshot menunjukkan pilihan dan penilaian polling.

Get real time updates directly on you device, subscribe now.

1 Comment
  1. […] kamu juga bisa mempelajari cara Membuat Polling PHP Sederhana […]

Leave A Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.