因此,我正在制作一个测验游戏,该游戏将显示在点击某个选项时与您达成一致意见的人数百分比。点击后,将显示之前玩家的结果,您的投票将被添加到数据库中。
我一直试图想出这个问题已经有一段时间了,在阅读了很多帖子并观看了很多视频后,似乎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时添加,就像我想要的那样。
如果您需要任何其他信息,请与我们联系。
任何帮助都会非常感激!
丹尼尔
答案 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();
?>
添加预准备语句以确保查询安全。