2015-02-24 151 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