计算所选复选框的数量&全部检查

时间:2016-07-03 16:23:45

标签: php html checkbox

我从我的数据库中提取值。如您所知,有时您想检查多行以删除或更新。您想知道您选择了多少。

我需要的是:

- 所选复选框的数量 - 使用一个复选框选中所有复选框

以下是我可以在没有任何功能的情况下循环多个复选框的方法:

if(isset($_POST['Submit']))
{
  echo '<table id="registrations_table_results" border=1  align=center >
  <thead style="font-weight:bold;">
    <tr>
        <td><input type="checkbox" name="checkall"></td>
        <td>#</td>
        <td>Name Surname</td>
        <td>Unique ID</td>
    </tr>
  </thead>';    

    $adsoyad = $_POST['adsoyad'];
    $query = mysqli_query($connect,"select * from kullanicilar where adsoyad like '%$adsoyad%'");


    while ($read = mysqli_fetch_array($query))
    {       
        $id = $read['ID'];
        $adsoyad = $read['adsoyad'];
        $tc = $read['tc'];

        echo '
            <tr>
                <td><input type="checkbox" name="check"></td>
                <td>'.$id.'</td>
                <td>'.$adsoyad.'</td>
                <td>'.$tc.'</td>
            </tr>
            ';
    }
  }

这里看起来像:

problem 在这一点上,你可以看到,当点击搜索按钮时,每个结果附近有一个复选框es。并且在表格标题处检查所有。我已经尝试了多个功能,但它们似乎无法工作。我决定复制 - 粘贴我的工作,所以最好适应我需要的功能。

编辑:这些复选框不是手动手动创建的。但它的行数和行数一样多。

1 个答案:

答案 0 :(得分:0)

添加了一个带有check all的示例代码,并检查了jQuery中复选框更改的计数 请参阅下面的代码:它还获取取消选中复选框的输出。

$(document).ready(function(){
        //Checkbox check event
        $("input[type='checkbox']").on("change", function(){
               //update count every check change event
               //total of all check[] checked
               var checkedcount = $("input[name='check[]']:checked").length;
           console.log("Total checked items" + checkedcount);
          //Check values of all check[]
          setTimeout(function(){
          var checkboxes = $("input[name='check[]']");
          $.each(checkboxes , function(index, element){
                //check if the current checkbox is checked
                var ischecked = $(checkboxes[index]).is(":checked") ? true : false;
                 //sample output
                 console.log(index + " value=" + element.value + " / ischecked? =" + ischecked);
             });
          });

        });
  
        $("input[name='checkall']").on("change", function(){
            if ( $("input[name='checkall']:checked" ) ) {
             $("input[name='check[]']").not(this).prop('checked', this.checked);
            }
        }).trigger("onchange");
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
   <td><input type="checkbox" name="checkall"> Check all</td>
</tr>
 <tr>
   <td><input type="checkbox" name="check[]" value="number one">1</td>
</tr>
 <tr>
   <td><input type="checkbox" name="check[]" value="number two">2</td>
</tr>
 <tr>
   <td><input type="checkbox" name="check[]" value="number three">3</td>
</tr>
 <tr>
   <td><input type="checkbox" name="check[]" value="number four">4</td>
</tr>
 <tr>
   <td><input type="checkbox" name="check[]" value="number five">5</td>
</tr>
  </table>

首先,您需要将复选框重命名为以下内​​容:

<td><input type="checkbox" name="check[]"></td>

提交上,您可以执行以下操作:

$checkboxes = $_POST['check'];
$cbCount = count($checkboxes);

检查php中的每个复选框值

foreach($checkboxes as $checkbox) {
   // some code here

}

在检查更改

时计算jQuery中的已检查项目
$(document).ready(function(){
    $("input[name='check[]']").on("change", function(){
           //update count every check change event
           var count = $("input[name='check[]']:checked").length;
    });
});