我的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>
然后在引用的cart.php文件中我有:
$cart = 0;
$samples = ($_POST['sample_']) * 50;
$cart = $cart + $samples;
echo $cart;'
不幸的是,这段代码没有按我的意愿行事,我需要一些帮助。 理想情况下,我只是希望代码在购物车中添加“50”,当按下“添加到购物车”按钮时,该购物车从0开始。
示例:http://www.craighooghiem.com/linpap/order
有人可以告诉我如何以更简单的方式做到这一点吗?
显然我可以使用<?=$_SERVER['PHP_SELF'];?>
以某种方式执行此功能而无需离开文件,但每次我尝试这样做都需要回到网站的主页。
我正在使用PHP的Wordpress模板文件,如果这有所不同。
编辑:我很快就知道我根本不熟悉PHP,我现在几乎不知道这些绳索。
答案 0 :(得分:1)
要保留在同一页面上,请将表单的action
属性保留为空,例如:
<form method="post" action="">
现在,在提交时,它不会进入网站的主页。
最后,修改你的代码:
$samples = intval($_POST['sample_']) * 50;
$cart = intval($cart) + $samples;
echo $cart;
答案 1 :(得分:1)
<?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>
该代码为我输出“50”。
我已将action
属性更改为与我的PHP文件一致。此外,出于清晰原因,我将提交按钮的name
属性更改为提交。
答案 2 :(得分:0)
您是否未关闭隐藏字段的输入标记?所以添加
</input>
之后。如果这不能解决问题,请确保通过回显它来获取post变量。如果它看起来正确并且它仍然无法正常工作,请尝试强制php转换为带有intval的int(无论如何它都应该这样做)。祝好运。