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

时间:2010-02-11 03:40:37

标签: 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>


<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,我现在几乎不知道这些绳索。

3 个答案:

答案 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(无论如何它都应该这样做)。祝好运。