如何计算在php中的复选框中选中和取消选中

时间:2013-08-01 07:37:12

标签: php javascript html

如果选中复选框,我只想要复选框的数量,但是我花了很多时间并且没有成功。这是我的HTML

<table>
<tbody><tr><th>Subscription</th></tr>
<tr><td><input type="checkbox" name="subscription_month">Jan</td></tr>
<tr><td><input type="checkbox" name="subscription_month">feb</td></tr>
<tr><td><input type="checkbox" name="subscription_month">march</td></tr>
<tr><td><input type="checkbox" name="subscription_month">apr</td></tr>
<tr><td><input type="checkbox" name="subscription_month">may</td></tr>
<tr><td><input type="checkbox" name="subscription_month">jun</td></tr>
<tr><td><input type="checkbox" name="subscription_month">july</td></tr>
<tr><td><input type="checkbox" name="subscription_month">aug</td></tr>
<tr><td><input type="checkbox" name="subscription_month">sep</td></tr>
<tr><td><input type="checkbox" name="subscription_month">oct</td></tr>
<tr><td><input type="checkbox" name="subscription_month">nov</td></tr>
<tr><td><input type="checkbox" name="subscription_month">dec</td></tr>
<tr><th><input type="checkbox" name="subscription_month" id="subscription_month" onclick="checkedAll2();">select all/unselect all</th></tr>
</tbody></table>

现在我想用javascript做这个并没有得到任何回复,请参阅代码

function checkedAll2() {
    var aa =  document.getElementsByName("subscription_month");
    checked = document.getElementById('subscription_month').checked;    

    for (var i =0; i < aa.length; i++) 
    {
        aa[i].checked = checked;
    }

     var numberOfChecked = $('input:checkbox:checked').length;
     alert("fgfgf");
var totalCheckboxes = $('input:checkbox').length;
var numberNotChecked = totalCheckboxes - numberOfChecked;
 }

我只想要复选框中有多少项仅在数字计数中选中可以通过php吗? 请尽可能给我任何解决方案......提前谢谢..

5 个答案:

答案 0 :(得分:5)

复选框值在数组中返回,只需使用count()来计算选中的值。

echo count($_POST['subscription_month']);
//This will return the number of checkboxes checked

要取消选中,您只需从总值中否定count()返回的值。

另外,请确保使用subscription_month[]作为名称。

答案 1 :(得分:2)

$('.do').on('click',function(){

var checked_num = $('input[type="checkbox"]:checked').length);

});

对于php,如果以上是表单的一部分,那么数据会自动提交 你可以使用$ _POST或$ _GET取决于你的方法和复选框名称已经提供但你需要更改复选框的名称,所有不能具有相同的名称。对于无线电类型它很好...使用类似subscription_month []的复选框名称,它们将被提供给数组中的php

这里是js部分的小提琴

http://jsfiddle.net/TKCah/

答案 2 :(得分:1)

将复选框设为array,如下所示

<table>
<tbody><tr><th>Subscription</th></tr>
<tr><td><input type="checkbox" name="subscription_month[]">Jan</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">feb</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">march</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">apr</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">may</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">jun</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">july</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">aug</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">sep</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">oct</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">nov</td></tr>
<tr><td><input type="checkbox" name="subscription_month[]">dec</td></tr>
<tr><th><input type="checkbox" name="subscription_month[]" id="subscription_month" onclick="checkedAll2();">select all/unselect all</th></tr>

然后只需计算选中的复选框值

echo count($_POST['subscription_month']);

希望它会有所帮助

答案 3 :(得分:0)

通过php使用ajax发布这些计数,您可以使用count函数

进行检查

答案 4 :(得分:-1)

试试这个JavaScript(需要jQuery):

function countChecked() {
    var checked = $( "input:checked" ).length;
    alert(checked);
}

$("input").on("click", function() {
    countChecked();
});