如何计算同一页面内单选按钮的总值并传递给另一个php文件?总数将在此页面计算,我可以从answer.php文件中获得总数。
<form action="answer.php" method="POST">
<input type="radio" name="q1" value="1" />Yes <br />
<input type="radio" name="q1" value="0" />No <br />
<input type="radio" name="q2" value="2" />Yes <br />
<input type="radio" name="q2" value="0" />No <br />
<input type="radio" name="q3" value="3" />Yes <br />
<input type="radio" name="q3" value="0" />No <br />
<input type="submit" value="submit" name="submit"/>
</form>
答案 0 :(得分:2)
我建议使用数组计算你的值。
<input type="radio" name="q[]" value="2" />
<input type="radio" name="q[]" value="3" />
<input type="radio" name="q[]" value="4" />
<input type="radio" name="q[]" value="5" />
这将导致$_POST['q']
成为一个数组。你现在可以这样做:
echo "The total amount is ".array_sum($_POST['q']);
答案 1 :(得分:1)
使用jQuery-很简单,只需遍历输入并计算值即可。请注意,我为表单提供了ID,因此如果您有其他表单,则可以直接定位。总数可以传递到您的其他页面 - 通过AJAX或使用标准HTML表单作为隐藏字段。或者 - 因为这是一个表单而你已经将它传递给PHP页面 - 你可以简单地提交表单并计算另一方的$ _POST变量。
$('#testForm input').on('change', function() {
var total=0;
$('input[type=radio]:checked', '#testForm').each(function(){
total += parseInt($(this).val());
})
alert(total)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="testForm" action="answer.php" method="POST">
<input type="radio" name="q1" value="1" />Yes <br />
<input type="radio" name="q1" value="0" />No <br />
<input type="radio" name="q2" value="2" />Yes <br />
<input type="radio" name="q2" value="0" />No <br />
<input type="radio" name="q3" value="3" />Yes <br />
<input type="radio" name="q3" value="0" />No <br />
<input type="submit" value="submit" name="submit"/>
</form>
OP的评论版:
$('#testForm input').on('change', function() {//triggers the function on any change in the form
var total=0;//initialises the total at 0 so that each round ottallying up resets before the tally
$('input[type=radio]:checked', '#testForm').each(function(){//selects each input in the #testForm that is checked
total += parseInt($(this).val());//adds the value of each checked radio button to the tally
})
alert(total); //alerts the final tally after all iterations
});
答案 2 :(得分:1)
你不需要jquery。在您的单选按钮中添加一个类,这样我们就可以查询它们,而不必担心在页面中获取其他元素,例如“my-radio”
这个javascript会得到你的总和:
function getRadioButtonsSum(radioClass) {
var radioBtns = document.querySelectorAll(radioClass);
var count = 0;
var i;
for (i = 0; i < radioBtns.length; i += 1) {
if (radioBtns[i].checked) {
count += +radioBtns[i].value;
}
}
return count;
}
getRadioButtonsSum('.my-radio');