在PHP中单击计数器(无表单)

在PHP中单击计数器(无表单),php,jquery,ajax,counter,Php,Jquery,Ajax,Counter,我做过一次基于表格的计数器。一切都很好,直到我不得不对网站进行更改 旧代码: <?php if( isset($_POST['b1']) ) { $count += 1; $_SESSION['count'] = $count; } (...) ?> <form action="start.php" method="post"> <button id="b1" class="btn" name="b1"> B1 </butt

我做过一次基于表格的计数器。一切都很好,直到我不得不对网站进行更改

旧代码:

<?php
if( isset($_POST['b1']) ) {
    $count += 1;
    $_SESSION['count'] = $count;
}

(...)

?>

<form action="start.php" method="post">
    <button id="b1" class="btn" name="b1"> B1 </button>
    <button id="b2" class="btn" name="b2"> B2 </button>
</form>

地下一层
地下二层
表单会产生问题,因此我正在寻找另一种解决方案。有人告诉我我试过Ajax,但它只对我有效(我需要帖子)

我做错了什么

<script>
  $(document).ready(function(){
    $("#b1").click(function(){
      $.post("start.php", { name: "b1" });
      location.reload();
    });
  });
</script>

$(文档).ready(函数(){
$(“#b1”)。单击(函数(){
$.post(“start.php”,{name:“b1”});
location.reload();
});
});

您检查的是b1,但实际上您传递了名称,其中b1为值

然后您需要将php代码更改为

<?php
if( isset($_POST['name']) && $_POST['name'] == 'b1' ) {
    $count += 1;
    $_SESSION['count'] = $count;
}

(...)

?>

检查错误和开发人员的控制台。更改
{name:“b1”}
->
{b1:1}
Thaks。我已经按你的方式做了,但是柜台上总是显示1。问题出在哪里?@PjRain我想问题出在$count中,它没有声明,所以它取为0,所以请看我答案的更新。现在是半夜,没有考虑它。。。当然有帮助,谢谢:)
if( isset($_POST['name']) && $_POST['name'] == 'b1' ) {
    $_SESSION['count'] += 1;
}