单击时向MYSQL数据库添加+1投票

时间:2015-11-25 09:26:09

标签: php mysql ajax onclick vote

因此,我正在制作一个测验游戏,该游戏将显示在点击某个选项时与您达成一致意见的人数百分比。点击后,将显示之前玩家的结果,您的投票将被添加到数据库中。

我一直试图想出这个问题已经有一段时间了,在阅读了很多帖子并观看了很多视频后,似乎ajax和php的组合是要走的路,我似乎无法忍受让它玩得很好。

这就是我所拥有的。 (删除非必要的东西以使其更清晰。)

HTML

<div id="option1"></div>

JQUERY

$(document).ready(function() { 
$('#option1').click(function() {
    var request = $.ajax({
        type: "POST",
        url: "clickvote.php",

        });
    }); 
});

我觉得这就是问题所在。似乎jquery实际上并没有调用php文件,我在这里缺少一些东西,我是否需要在这一点而不是在php中插入某种形式的数据?

PHP(clickvote.php)

<?php

include ('db_connect.php'); 
include ('getpageid.php');


$sql = "UPDATE questions SET votes1 = (votes1 + 1) WHERE id = {$pageid}";

mysqli_query($db,$sql);


?>

这个PHP添加投票并运行,如果我将其包含在问题页面的顶部,但是它会在每次加载页面时添加投票,而不是在单击选项1时添加,就像我想要的那样。

如果您需要任何其他信息,请与我们联系。

任何帮助都会非常感激!

丹尼尔

1 个答案:

答案 0 :(得分:0)

首先确保您的PHP脚本路径。使用您的浏览器网络它应该会成功。

尝试从客户端提交页面ID

$(document).ready(function() { 
$('#option1').on('click', (function() {
    var request = $.ajax({
        type: "POST",
        url: "clickvote.php",
        data: {"page" : <?php echo $page_id ?>}
        });
    }); 
});

然后

<?php

include ('db_connect.php'); 
include ('getpageid.php');
$pageId = filter_input(INPUT_POST, 'page');

    $sql = "UPDATE questions SET votes1 = (votes1 + 1) WHERE id = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param($pageId);
$stmt->execute();  

?>

添加预准备语句以确保查询安全。