2012-03-05 80 views
0

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

<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; 

当我试图这样做时,$ dollars是一个空变量“”。有人能告诉我如何解决这个问题吗?

谢谢!

+1

你的代码适合我。你确定你将值传递给process.php吗?你用'method =“post”'提交表单吗? – Travesty3 2012-03-05 19:17:35

+0

如果你添加'print_r($ _ POST);'你得到一个填充POST数组? – Ing 2012-03-05 19:18:04

+0

您确定$ _POST ['product1']和$ _POST ['product2']设置正确吗? – 2012-03-05 19:18:14

回答

1

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

  1. $ _ POST [“产品1”]没有价值100,否则将无法在所有
  2. $ _ POST [“产品2”]也没有价值250通过邮局发送否则将无法通过邮寄方式发送以及

为了验证这一点,在你的PHP文件的顶部

+0

尴尬的是,我在'process.php'文件中输入了一个大写错误,当我在这里重新输入时,我没有继续输入它。上面的代码确实有效。谢谢! – 2012-03-05 19:52:13

+0

@PatrickAppelman,它真的很好,它发生在我们身上。所有最好:) – Starx 2012-03-05 19:53:47

-2

复选框值不与POST数据如果不是发送给服务器做一个快速var_dump($_POST)检查。 (编辑后)

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

+0

只要复选框被选中,复选框值就会被发送。 – Travesty3 2012-03-05 19:20:57

+0

此外,这不会解决问题,因为隐藏值始终“打开”。“用户无法指出他们是否需要该产品 – octern 2012-03-05 19:23:18

+0

我建议使用隐藏值而不是复选框 – Jack 2012-03-05 19:24:00

0

这工作,所以东西并不在你的代码工作,但我们不能看到它现在

<?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> 
0

,如果你想您可以张贴复选框数组。试试这个:

<?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> 

这段代码得到一个选定的产品数组并进行求和。