我有一个非常简单的PHP购物车,它可以正常工作。
但我想要做的是在购物车中添加两个复选框,其中包含两个不同的运费成本。
例如,一个值为7,一个值为12.
我的购物车里有这个PHP:
$totalAll = $totalAll + ($item['qty']*$item['price']) + 'ship';
我回复$totalAll
这样:
<?php echo $totalAll;?>
我也有这两个复选框:
<label>UK Shipping</label>
<input name="ship" type="checkbox" value="7" />
<label>International Shipping</label>
<input name="ship" type="checkbox" value="12" />
所以我需要$totalAll
+ 'ship'
值,但我这样做的方式并没有多大意义!
有人可以帮我解决这个问题吗?
由于
答案 0 :(得分:1)
HTML
<label>UK Shipping</label>
<input name="ship[]" type="checkbox" value="7" />
<label>International Shipping</label>
<input name="ship[]" type="checkbox" value="12" />
PHP
$ship = 0;
foreach($_POST['ship'] as $s)
{
$ship += $s;
}
$totalAll += ($item['qty']*$item['price']) + $ship;
答案 1 :(得分:1)
首先,我会推荐单选按钮。添加两种运输成本是没有意义的。
其次,将“船”添加到某个数字不会对您有所帮助。你的receiveform需要以下内容(在我的例子中是test.php):
HTML:
<form method="post" action="test.php" enctype="multipart/form-data">
<input type="radio" name="ship" value="7">
<input type="radio" name="ship" value="12">
<input type="submit">
</form>
test.php的:
$ship = $_POST['ship'];
$total = $totalAll + $ship;
这将为您提供全价。
别忘了验证输入!一般来说,依靠HTML表单来计算价格并不是一个好习惯。
答案 2 :(得分:0)
您可以使用收音机代替复选框:
<label for="uk">UK Shipping</label>
<input id="uk" name="ship" type="radio" value="7" />
<label for="international">International Shipping</label>
<input id="international" name="ship" type="radio" value="12" />
答案 3 :(得分:0)
我建议您使用单选按钮而不是复选框,并将运费值存储在服务器上。这导致如下:
$shipping = array(
1 => 7,
2 => 12
);
// nothing selected?
if (!isset($_REQUEST['ship'])) {
die("error"); // your error handling..
}
$ship = $shipping[(int) $_REQUEST['ship']];
和html
<label>UK Shipping</label>
<input name="ship" type="radio" value="1" />
<label>International Shipping</label>
<input name="ship" type="radio" value="2" />