2012-03-05 47 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> 

這段代碼得到一個選定的產品數組並進行求和。