Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
页面在重新加载时刷新php变量_Php - Fatal编程技术网

页面在重新加载时刷新php变量

页面在重新加载时刷新php变量,php,Php,我在一个网站上工作,用户可以通过这个按钮将产品添加到购物车中 <button name="add_to_cart" >Add to cart</button> “p_val”最初等于0(p_val存储在function.php选项卡中) 包含在index.php中) $p_det等于“产品详细信息” 当我按下按钮时,会话变量被更新,值p_val递增,但在我尝试在$_会话中添加另一个值后,[$p_det][p_val]被新的单击按钮覆盖,我不希望它被过度写入,而

我在一个网站上工作,用户可以通过这个按钮将产品添加到购物车中

    <button name="add_to_cart" >Add to cart</button> 
“p_val”最初等于0(p_val存储在function.php选项卡中) 包含在index.php中)

$p_det等于“产品详细信息”


当我按下按钮时,会话变量被更新,值p_val递增,但在我尝试在$_会话中添加另一个值后,[$p_det][p_val]被新的单击按钮覆盖,我不希望它被过度写入,而是应该将其添加为购物车的第二个变量(我已经尝试了关键字static),根据我的观察,当页面在按钮上重新加载时,单击它会将$\u session['p\u val']变量刷新回0,我已经尝试使用基本php变量代替$\u session['p\u val'])。

为了补充上述答案中的答案,您也可以这样做:

在function.php中

if(!isset($_SESSION['p_val']))
{
    $_SESSION['p_val'] = 0;
}
将您的其他代码更改为该代码,使其少一行。这将在之后递增,因此第一个值将为0

if(isset($_POST['add_to_cart']))
{
    $_SESSION[$p_det][$_SESSION['p_val']++] = $_POST['add_to_cart'];           
}

但是,如果你没有在其他地方使用
$\u SESSION['p\u val']
,最好按照上面的答案使用
$\u SESSION[$p\u det][]

$\u SESSION[$p\u det][=$\u POST['add\u to\u cart']
?我认为您的问题在于,您在
函数.php中将
p_val
设置为零,正如您所提到的,当您重新加载页面时,会重新加载该函数。您可以检查它是否在我相信的函数中设置,如果没有设置,则将其设置为0。
if(isset($_POST['add_to_cart']))
{
    $_SESSION[$p_det][$_SESSION['p_val']++] = $_POST['add_to_cart'];           
}