2015-02-24 113 views
0

我一直在尋找一種方法來加總單選按鈕的總數,並在php的同一頁面上回顯它。有沒有辦法做到這一點?我已經包含了我正在看的內容的圖像。PHP的顯示和總價格在同一頁

這裏是我想出了這麼遠代碼:

PHP

<?php 
$prod1 = "10"; 
$prod2 = "20"; 
$prod3 = "30"; 
?> 


<form action=""> 
<input type="radio" name="prod1" value="<?=$prod1?>">$10 product 1<br> 
<input type="radio" name="prod2" value="<?=$prod2?>">$20 product 2<br> 
<input type="radio" name="prod3" value="<?=$prod3?>">$30 product 3 
</form> 

<!-- This is where the total shows live upon radio check --> 
<?php 
echo ="$total" 
?> 

我是新的,所以它不會張貼圖片,這裏是我的形象的鏈接:

enter image description here

+4

您可以更新的一部分使用Javascript或JQuery的頁面。 PHP已經被渲染並且不會更新 – 2015-02-24 20:34:10

+0

您的意思是當用戶選擇另一個選項時總共需要更改嗎?或者你的意思是你希望它在用戶發佈表單後顯示? – Popnoodles 2015-02-24 20:36:13

+0

如果選擇prod1,選擇prod2爲$ 20,選擇prod3爲$ 30,您希望總數顯示爲「$ 60」還是希望它顯示爲$ 10?還是應該能夠選擇產品的組合? – 2015-02-24 20:36:51

回答

1

Working example

你需要一個元素總數將會是什麼,以及一種識別這些輸入的方法。我用input這不是很具體;如果你有更多的這種形式,你可能想要改變它。

我將change綁定爲表單(我給出的ID爲products),因爲對輸入所做的更改事件會冒泡到表單中,我們需要搜索整個表單以查找所有輸入,所以它沒有意義必須遍歷,如果函數綁定到輸入字段,我們需要執行該操作。

然後,只需在表單中的某項內容變化時,將檢查的元素的值相加即可。使用parseFloat()是因爲這些值是字符串,並且最終會出現「102030」,而您確實需要「60」。

HTML

<form action="" id="products"> 
    <label><input type="radio" name="prod1" value="10" />$10 product 1</label> 
    <br /> 
    <label><input type="radio" name="prod2" value="20" />$20 product 2</label> 
    <br /> 
    <label><input type="radio" name="prod3" value="30" />$30 product 3</label> 
</form> 

<p>Total $<span id="total">0</span></p> 

jQuery的

$(function(){ 
    $('#products').on('change', function(){ 
     var total = 0; 
     $(this).find('input:checked').each(function(){ 
      total += parseFloat($(this).val()); 
     }); 
     $('#total').text(total); 
    }); 
}); 

順便說一句,如果用戶應該能夠取消這些選項,你需要使用<input type="checkbox" ...

+0

謝謝。這將工作。唯一的缺點是,如果用戶禁用了javascript,但有多少用戶真的禁用了js – AlwaysLearning 2015-02-24 21:01:33

+0

如果您擔心這一點,那麼隱藏總位並用JS顯示它。 – Popnoodles 2015-02-24 21:05:51

+0

我討厭問,但我會如何添加一個輸入?說如果我在輸入中輸入20,就會增加20。我曾嘗試過,但無法弄清楚。在此先感謝 – AlwaysLearning 2015-02-24 23:36:43