为什么每次页面刷新时,php的会话值都会增加?


Why session value in php keep incrementing every time the page refreshed

我是PHP新手,我使用会话变量来创建购物车,因为我需要增加购物车中的项目数量,所以我使用会话变量。但是,该变量在每次刷新/重新加载页面时保持递增,从而增加条目的数量。

<?php 
session_start();
if (!isset($_SESSION['items'])){
    $_SESSION['items'] = 0;
}
function increament_items(){
    $_SESSION['items']++;
}
?>

在HTML中我有这个

<a id="laptop" href="index.php" onclick="<?php increament_items() ?>",title="header=[Add to cart] body=[&nbsp;] fade=[on]">

我试过使用post/get的形式,仍然是一样的。任何帮助吗?由于

Php,因为它不是客户端语言,不会工作"onclick",但每次代码

<a id="laptop" href="index.php" onclick="<?php increament_items() ?>",title="header=[Add to cart] body=[&nbsp;] fade=[on]">
加载

.

所以,你可以用这样的东西来解决你的问题。

1)在php代码的末尾添加:

if($_GET['add']==1){
increament_items();
}
然后,将你的html代码替换为这个
<a id="laptop" href="nameofyourphppage.php?add=1">Add</a>

2b)或者,如果您愿意,在将jquery库(*)包含到html页面后,使用以下代码:

<script>
function openLink(url)
{$("#add").html('Loading...');
$("#add").load(url, function (responseText, textStatus, req) {
   if (textStatus == "error") {
      $("#add").html('An error occurred');
   }
});
}
</script>
    <a id="laptop" href="javascript:openLink('nameofyourphppage.php?add=1')">Add</a>
<div id="add"></div>

第二个解决方案将在用户不离开html页面的情况下运行php代码。

(*)要包含jquery库,在html页面的标题部分放入以下代码:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>