2017-08-13 4 views
0

私はdbからデータを取得し、それをテーブルに表示するコードを持っています。それは正常に動作しているが、私はすべての行を選択/選択解除できるようにするヘッダーの一部としてチェックボックスを実装したい。ヘッダーはdbコメントから取得されているだけなので、checkbox-select/deselect allヘッダーを実装する方法はわかりません。ここでチェックボックスヘッダーの実装

は私のコードは、このチェックボックスのために私のスクリプトで、私は、チェックボックスのヘッダーを作成するためのコードを挿入することができる場所を知らない、

<div> 
    <form action="test4.php" method="post"><?php 

if(is_array($result)){ 
    echo ' 
    <fieldset> 
     <legend>Assign</legend> 
     <div>Changes will affect selected rows only.</div> 
     <table width=auto cellpadding=1px cellspacing=0px border=1 align=center> 

      <thead> 
      <tr>';  

    // column comment from DB as column header 
    foreach($result[0] as $key => $val){ 
     echo '<th>'.$colcomments[$key].'</th>'; 
     } 
    echo ' 
      </tr> 
      </thead> 
      <tbody>'; 
    foreach($result as $row => $info){ 
    echo ' 
      <tr>'; 
    foreach($info as $key => $val){ 
    if($key=='id'){ 
    echo ' 
      <td title="'.$colcomments[$key].'">'.$val.'. 
      <input type="checkbox" name="'.$key.'['.$info['id'].']" 
      value="'.$val.'" id="rowid_'.$val.'" /> 
      <label for="rowid_'.$val.'"></label></td>'; 
     } 
    else { 
    echo ' 
      <td title="'.$colcomments[$key].'"> 
      <input type="text" name="'.$key.'['.$info['id'].']" 
      value="'.$val.'" /> 
      </td>'; 
     } 
     } 
    echo ' 
      </tr>'; 
     } 
    echo ' 
      </tbody> 
      </table> 
    </fieldset>'; 
    } 
?> 
    <fieldset> 
     <legend>Select Date</legend> 
     <div>Select Date from and Date to</div> 
     <input type="date" name="from" id="from" value="<?=$date['from']; ?>" /> 
     <input type="date" name="to" id="to" value="<?=$date['to']; ?>" /> 
     <div><input type="submit" value="Submit" /></div> 
    </fieldset> 
    </form> 
    </div> 

です。これは私の問題として以前に投稿されたものとは異なります。私はチェックボックスヘッダを作成することができます。

<script> 
jQuery(document).ready(function() { 
    jQuery("input[name=checkall]").click(function() { 
    jQuery('input[name=checkall]').prop('checked', this.checked); 
    jQuery('input[name=checkbox]').prop('checked', this.checked); 
    }); 


    // if all checkbox are selected, check the selectall checkbox 
    // and viceversa 
    jQuery("input[name=checkbox]").click(function(){ 

    if(jQuery("input[name=checkbox]").length == jQuery("input[name=checkbox]:checked").length) { 
     jQuery("input[name=checkall]").prop("checked", true); 
    } else { 
     jQuery("input[name=checkall]").prop("checked", false); 
    } 
    }); 
}); 
</script> 
+1

あなたのテーブルの本体で 'key == id'がチェックされていればチェックボックスを入れます。ヘッダーで同じことをすることはできませんか? – sal

答えて

0

解決済みとマークしています。簡単な修正はタイプをhiddenに設定することです。私はとにかくすべての行を更新する必要があるため

変更

から
<input type="checkbox" name="'.$key.'['.$info['id'].']" 

<input type="hidden" name="'.$key.'['.$info['id'].']" 

にあるチェックボックスは単なる冗長です。