2016-07-03 88 views
0

我從我的數據庫帶來的價值。你知道,有時你想檢查多行刪除或更新。你想知道你選擇了多少。計數所選的複選框和檢查所有

我需要的是:

- 選擇複選框 數 - 使用檢查所有的複選框一個複選框

這裏是如何我可以循環多次複選框ES無任何功能:

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 在這一點上,你可以選擇e,當點擊搜索按鈕時,在每個結果附近有複選框。在表格標題處有1個以檢查所有。我試過了多個函數,但它們似乎不工作。我決定將我的工作複製粘貼到此處,所以最好能適合我在這裏需要的功能。

編輯:這些複選框不是手工創建的,但它的行數與行數一樣多。

+0

能否請您通過incuding,幫助我在我的工作? –

+0

考慮使用JavaScript,它會更適合這種功能。 – Script47

回答

0

增加了一個全選的代碼示例,並在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; 
    }); 
}); 
+0

它不知道'檢查'來自'未定義的變量'檢查'的地方。我想你錯過了這一點。那些複選框不是手動創建的。它的確會回顯結果行.Plus,它應該像「CheckedChange」事件一樣工作。 –

+0

我發佈了代碼,以便您可以使用php進行計數,您應該澄清一下您的問題,並指出您需要使用php上不可用的checkedchange事件來執行檢查。我提供給你的代碼將會檢查所有的複選框,即使是動態創建的,或者不管它有多少,因爲它在提交時將會在數組中。 –

+0

我更新了答案,並添加了如何檢查更改並捕獲複選框值選中或取消選中。看到更新的答案 –