2010-02-11 84 views
2

我有这样的代码在我的HTML表单:PHP表单添加变量对于“购物车”

<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

这只是一个学习的过程,或者说人们_really_还是从头开始编写的购物车? *划痕头*(双关语意) – 2010-02-11 03:47:21

+0

我不想从零开始写购物车,因为我不想或需要购物车的灵活性和庞大性。我只需要一个简单的功能,即按下一个按钮并向变量($ cart)添加一个值,该变量将立即更新以显示新的结算购物车价格。 – 2010-02-11 03:49:54

+0

Craig,忽略'$ _SERVER ['PHP_SELF']',你不需要它,并尝试下面的代码。 – 2010-02-11 03:52:15

回答

1

为了保持在同一页上,离开action属性的形式空例如:

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

现在,提交,也不会去的网站的主页。

最后,修改代码:

$samples = intval($_POST['sample_']) * 50; 
$cart = intval($cart) + $samples; 
echo $cart; 
+1

你不需要'intval'方法,它没有它。 – 2010-02-11 03:51:23

+0

哦,伙计。我无法相信这是多么容易。 非常感谢! – 2010-02-11 03:53:13

+0

@Anthony Forloney,我怎么没有intval?只需删除Intval,因为无论它是否是内容类型都无关紧要? – 2010-02-11 03:53:49

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属性更改为提交

+0

谢谢安东尼,这段代码应该同样适用。只要它正在工作,现在看来,我将单独添加其他三种产品作为单独的表单,并看看会发生什么。 – 2010-02-11 03:59:09

+0

只要你有它的工作,这就是最重要的。祝你好运与其他人。 – 2010-02-11 04:03:08

+0

发挥魅力! http://www.craighooghiem.com/linpap/order/ – 2010-02-11 05:21:39

0

难道你没有关闭您输入标签的隐藏字段?所以添加

</input> 

之后它。如果这不能解决它,请确保您通过回显它来获取帖子变量。如果这看起来是正确的,它仍然无法正常工作尝试强制PHP转换为一个int与intval(它应该无论如何)。祝你好运。