2013-03-16 37 views
0

3複選框具有相同名稱和考慮到這種代碼相同的數值相同

<input type="checkbox" id="Coke" name="Price" value="70" /> 
<input type="checkbox" id="Fanta" name="Price" value="70" /> 
<input type="checkbox" id="Sprite" name="Price" value="70" /> 

我想知道怎麼樣,如果我的用戶選擇芬達複選框,我想我的PHP變量$type="Fanta"但我需要的形式CheckBox值留在NUMERIC進行總價計算。

回答

3

目前還不清楚你問什麼,但我相信你基本上要2場,一個定義定義所選類型的價格和一個。

在這種情況下,你最好的選擇是存儲服務器端的價格(這樣人們不能修改它們,這很好!)。如果你這樣做,你的複選框看起來就像這樣:

<input type="checkbox" id="Coke" name="type[]" value="Coke" /> 
<input type="checkbox" id="Fanta" name="type[]" value="Fanta" /> 
<input type="checkbox" id="Sprite" name="type[]" value="Sprite" /> 

你的後端代碼是這樣的:

$prices = array(
    'Coke' => 70, 
    'Fanta' => 70, 
    'Sprite' => 70 
); 

$types = $_POST['type']; 
$total = 0; 

foreach($types as $key => $type) { 
    if (!isset($prices[$type])) 
     continue; 

    $total += $prices[$type]; 
} 

// Use $total as your total price for whatever calculation 
echo $total; 

根據你的評論,如果您仍然希望這些價格客戶端對於計算,您可以使用json_encode將其輸出到腳本標記中並直接使用價格。它基本上將把服務器端價格數組變成客戶端價格數組。

<script type="text/javascript"> 
    var prices = <?= json_encode($prices) ?>; 

    // Now you can use prices['Coke'] etc, based off the value of the selected checkbox. 
</script> 
+0

但什麼情況下,如果他有複選框人數超過的..? – Gautam3164 2013-03-16 13:01:01

+0

@ GautamD3164然後他增加了更多的價格?! – 2013-03-16 13:01:49

+0

謝謝你的驚人迴應,我會試試看看它是怎麼回事。我希望這些值是一個數字的唯一原因是因爲當用戶選擇一個複選框時,總價格將使用Java腳本顯示在表單的底部。 – user2087655 2013-03-16 13:03:09

1

我想知道怎麼樣,如果我的用戶選擇芬達複選框,

然後將其命名你場fanta

<input type="checkbox" id="Fanta" name="fanta" value="70" /> 

一旦你這樣做,你可以使用得到的值或者$_POST or the $_GET superglobal(取決於您的表單方法):

if (isset($_POST['fanta'])) { 
    echo $_POST['fanta']; 
} 

然而,你永遠不應該依賴來自客戶端的價格!

但我需要表單複選框值保留NUMERIC的總價格計算。

這不會發生,因爲在HTTP值被髮送爲字符串。幸運的是,PHP會爲您自動執行type juggling,因此您仍然可以使用字符串值進行計算。

http://codepad.viper-7.com/GOhHdz

在某些情況下,你想成爲一個整數值明確。在這種情況下,你可以使用type casting

var_dump((int) '18'); 

http://codepad.viper-7.com/kJlGoS

0

在您發表的形式,反正你會得到70值。

echo $_POST['Price']; 

給70

0
<input type="checkbox" value="Coke" name="Price" rel=70 /> 
<input type="checkbox" value="Fanta" name="Price" rel="70" /> 
<input type="checkbox" value="Sprite" name="Price" rel="70" /> 

利用javascript得到rel屬性爲選定的複選框值總價

相關問題