php - Ajax/PHP 值不会增加多次

标签 php javascript jquery html ajax

我正在开发一个非常简单的投票系统,作为概念证明,我有一个带有 php 定义变量的 div,当单击按钮时该变量应该增加 1。到目前为止,我所做的一切都有效,但只有一次...为什么单击按钮时 votes 值不会继续上升?

这是我到目前为止的代码:

投票页面:

<?php $votes = 0 ?>

<script>
$(document).ready(function(){
    $("#btn1").click(function() 
    {
        var votes = document.getElementById("votes").innerHTML;

        $.ajax({
            type: "POST",
            url: "ajax.php",
            data: votes,
            success: function(votes)
            {
                document.getElementById("votes").innerHTML = votes; 
            }                 
            });
    })
}); 
</script>
<div id="votes"><?= $votes ?></div>
<input type="button" id="btn1" value="vote!"/>

ajax.php:

<?php
    echo $_POST["votes"] + 1;            
?>

最佳答案

问题是,在您的服务器脚本中,您尝试访问特定的 POST 参数 - 名为 votes。但在客户端脚本中,您仅向服务器发送一个字符串(投票值),而不对其进行任何标记。

首先将 data: votes 行更改为 data: {votes: votes} 或类似内容;更正您的脚本,以便不设置 $_POST['votes'],它会发出错误信号:

if (! isset($_POST['votes'])) {
   throw new Exception('No value for votes'); 
}
echo $_POST['votes'] + 1;

请注意,即使没有全能的 SO,您也会注意到这一点。 )看,如果没有设置 error_reporting 级别,原始代码应该触发 E_NOTICE(因为 $_POST['votes'] 未定义)太高。请记住,在开发中 error_reporting(-1) 行是您的 friend 。

关于php - Ajax/PHP 值不会增加多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16617769/

相关文章:

javascript - onclick 并进入 jquery

php - 为什么我无法对 API 的响应进行 json_decode?

javascript - Angular ui.bootstrap Accordion 和 bootstrap3

javascript - 从代码行中删除 href

javascript - 在 nav ul li h4 中使用 jQuery 添加/删除链接类

javascript - TradingView React 组件中的图表更新不起作用

jquery - 如何在 jQuery 中获取多选的 optgroup?

javascript - jquery 监听器行为不正常

php - 从单个 MySQL 表重构 Laravel eloquent 中的数据

php - Doctrine 2 多级 OneToOne 级联