PHP传递单选按钮的总值

时间:2016-05-08 21:32:06

标签: javascript php html

如何计算同一页面内单选按钮的总值并传递给另一个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>

3 个答案:

答案 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');