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

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 时添加投票,就像我想要的那样.

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

非常感谢任何帮助!

丹尼尔

首先确保您的 php 脚本路径。使用你的浏览器网络应该return成功。

尝试从客户端提交页面 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();  

?>

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