PHP表单为“添加变量”;购物车“;

PHP表单为“添加变量”;购物车“;,php,forms,Php,Forms,我的HTML表单中有以下代码: <form action="cart.php" method="post"> <input type="hidden" value="1" name="sample_" id="sample_"> Sample Bottle <br /><input type="submit" value="Add to Cart" name="sample"><br /> </form> <

我的HTML表单中有以下代码:

<form action="cart.php" method="post">

<input type="hidden" value="1" name="sample_" id="sample_">
Sample Bottle  <br /><input type="submit" value="Add to Cart" name="sample"><br />

</form>


<h1>Cart Total: $<?php echo $cart; ?></h1>
不幸的是,这段代码不是我想要的,我需要一些帮助。 理想情况下,我只是希望代码将“50”添加到购物车中,当按下addtocart按钮时,它从0开始

例如:

有人能告诉我如何用一种更简单的方法来做这件事吗? 显然,我可以使用
以某种方式执行此功能,而无需离开文件,但每次我尝试这样做时,都会返回网站主页

我正在为PHP使用Wordpress模板文件,如果这有区别的话


编辑:我很快就了解到,我对PHP一点也不熟悉,目前我几乎不知道其中的诀窍。

要保持在同一页上,请将表单的
action
属性保留为空,例如:

<form method="post" action="">

样品瓶

购物车总数:$
该代码为我输出“50”


我已经更改了
action
属性,使其与我的PHP文件一致。此外,为了清晰起见,我将我的提交按钮的
名称属性更改为提交。

可能是因为您没有关闭隐藏字段的输入标记吗?所以加上

</input> 


在它之后。如果这不能解决问题,请确保通过回显获取post变量。如果这看起来是正确的,但仍然不起作用,请尝试使用intval强制php转换为int(无论如何都应该这样做)。祝你好运

这仅仅是一次学习经历,还是人们真的还是从头开始写购物车?Scratchs head(双关语)我不想从头开始写一个购物车,因为我不想也不需要购物车的灵活性和广度。我只需要一个简单的函数来按下按钮并向变量($cart)添加一个值,该变量将立即更新以显示新的结帐购物车价格。Craig,省去
$\u SERVER['PHP\u SELF']
,你不需要它,然后试试下面的代码。@Anthony Forloney,没有intval我怎么办?只需删除Intval,因为它是否是该内容类型并不重要,因为当您键入
echo$\u POST['sample']
时,它会输出
1
。您提供的代码对我来说很好,只需对
操作
属性进行少量编辑即可引用我的文件名。@Anthony Forloney:通过get、post等处理的所有数据都会以字符串形式发送回脚本,您需要对其进行转换,以防您在寻找想法或正确答案answer@Sarfraz:
$number=“1”;echo$number+11
输出
12
无论
$number
是否初始化为字符串,PHP都是松散类型的,它允许这样做。这就是为什么您不需要
intval
,算术仍然有效。@Anthony:没人在谈论来自POST和GET的值,它们都是以字符串形式发送的,不过您可能在自己的位置。谢谢Anthony,这段代码也应该同样有效。只要它在工作,现在看起来是这样,我将单独添加其他三种产品作为单独的形式,看看会发生什么。只要你让它工作,这就是所有的问题。祝其他按钮好运。@Craig:祝贺你,这是为你做的吗?我对每个按钮分别使用了Sarfraz代码3次,但我修改了它,没有像你在评论中提到的那样强制使用整数。@Craig:如果你对松散类型语言(如PHP)持怀疑态度,你可以强制使用整数。但我很高兴你一切顺利。如果您遇到任何其他问题,请告知我们。
$samples = intval($_POST['sample_']) * 50;
$cart = intval($cart) + $samples;
echo $cart;
<?php
$cart = 0;
 // good practice to see if the submit button has been pressed.
 if (isset($_POST['submit'])) {
 // no need to explicitly cast to an int, PHP is loosely typed.
  $samples = ($_POST['sample_']) * 50;
  $cart = $cart + $samples;
 }
?>
<form action="echo.php" method="post">
<input type="hidden" value="1" name="sample_" id="sample_">
Sample Bottle  <br />
<input type="submit" value="Add to Cart" name="submit"><br />
</form>
<h1>Cart Total: $<?php echo $cart; ?></h1>
</input>