2014-01-23 97 views
0

我有一個非常簡單的PHP購物車,它的工作原理應該如此。將複選框的值添加到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

'的foreach($ _ POST [ '船']爲$費用){$船+ = $成本}'或者類似的東西。 – putvande

+0

你爲什麼要添加一個字符串「船」到一個數字!? – Philipp

+0

你可能會用'.'來改變最後一個'+',因爲我想你想要連接,而不是求和 –

回答

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表格來計算價格並不是一個好的做法。

+0

優秀...這是做到這一點的方法。有沒有什麼方法可以在不按提交按鈕的情況下更新單選按鈕上的'$ total'? – user2953877

+0

不適用於PHP。如果您只想向用戶顯示目前的運費是多少,那麼您應該使用JS或jQuery。 –

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

似乎有點不安全..有人可以操縱請求,並使'船'-100'或其他東西..i – Philipp

+0

是的,你將不得不比較你的代碼中的那些肯定..我只是想展示如何訪問這些值! – Yami

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" /> 
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" /> 
相關問題