PHP表单-复选框的数值


PHP Forms - Numeric Value of Checkbox

我正在为多个产品创建一个在线订单。我需要计算通过复选框选择的产品的总成本,并将其作为确认电子邮件发送。复选框的值是以美元为单位的价格。

<input type="checkbox" id="product1" name="product1" value="100" />
<input type="checkbox" id="product2" name="product2" value="250" />

在我的"process.php"文件中,如果检查了所有项目,我需要合计它们的成本。

if(isset($_POST['product1']) && $_POST['product1'] == '100') {
    $product1 = 100;
}
if(isset($_POST['product2']) && $_POST['product2'] == '250') {
    $product2 = 250;
}
$dollars = $product1 + $product2;

当我尝试这样做时,$dollar是一个空变量"。有人能告诉我怎么修吗?

谢谢!

您的代码中没有语法错误。所以唯一的解释是,

  1. $_POST['product1']没有值100,或者根本没有通过邮件发送
  2. $_POST['product2']也没有值250,或者它们也不是通过邮寄发送的

为了验证这一点,请在.php文件

的顶部快速执行var_dump($_POST)

这是有效的,所以有些东西在你的代码中不起作用,但我们现在看不到

<?php
if(isset($_POST['submit']) ) {
    if(isset($_POST['product1']) && $_POST['product1'] == '100') {
        $product1 = 100;
    }
    if(isset($_POST['product2']) && $_POST['product2'] == '250') {
        $product2 = 250;
    }
    echo $dollars = $product1 + $product2;
}
?>
<form method="post">
  <input type="checkbox" id="product1" name="product1" value="100" />
  <input type="checkbox" id="product2" name="product2" value="250" />
  <input type="submit" name="submit" />
</form>

如果需要,可以发布一个复选框数组。试试这个:

<?php
$dollars = 0;
// If the user post the form
if(isset($_POST['value'])) {
    foreach ($_POST['product'] as $product) {
        if(is_numeric($product) && $product >= 0) {
            $dollars += $product;
        }
    }
}
?>
<!DOCTYPE HTML>
<html>
    <head></head>
    <body>
        <p>Product : <?php echo $dollars; ?></p>
        <form method="post">
            <label><input type="checkbox" name="product[]" value="100" /> 100</label><br/>
            <label><input type="checkbox" name="product[]" value="250" /> 250</label><br/>
            <label><input type="checkbox" name="product[]" value="350" /> 350</label><br/>
            <label><input type="checkbox" name="product[]" value="20" /> 20</label><br/>
            <label><input type="checkbox" name="product[]" value="25" /> 25</label><br/>
            <input type="submit" name="value" />
        </form>
    </body>
</html>

此代码获取所选产品的数组并求和。

如果未选中复选框值,则不会将其与POST数据一起发送到服务器。(编辑后)

如果必须POST此数据,请考虑使用<input type="hidden" name="product1value" value="100"/>来发送值?保留复选框,看看是否勾选了。