点击添加+1投票到MYSQL数据库


Add +1 Vote to MYSQL database on click

所以我正在制作一个智力竞赛游戏,当点击一个选项时,它会显示同意你的人的百分比。点击后,将显示以前玩家的结果,您的投票将添加到数据库中。

我已经尝试弄清楚这一点很长一段时间了,在阅读了大量帖子和观看了大量视频后,似乎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时添加投票

如果您需要任何其他信息,请告诉我。

任何帮助都将不胜感激!

Daniel

首先确保您的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();  
?>

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