为什么php中的会话值在每次页面刷新时都会递增

时间:2014-07-03 13:33:29

标签: php web reference e-commerce

我是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使用表单并且仍然相同。 任何帮助? 感谢

1 个答案:

答案 0 :(得分:1)

Php,因为它不是客户语言,不会工作&#34; onclick&#34;,但每次代码

<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();
}

2a)然后,用这个替换你的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页面的head部分:

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