将复选框的值添加到PHP结果中?

时间:2014-01-23 13:43:44

标签: php html

我有一个非常简单的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'值,但我这样做的方式并没有多大意义!

有人可以帮我解决这个问题吗?

由于

4 个答案:

答案 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" />