ホームページ > 記事 > PHPフレームワーク > thinkphp ですべて選択および削除関数を実装する方法
1. すべて選択関数の実装
1. ビュー ファイルに、次のコードのような「すべて選択」ボタンを追加する必要があります。
<input type="checkbox" name="chkall" onclick="check_all(this)">
その中で、check_all()
関数は、すべてを選択または選択解除するためのものです。
function check_all(obj){ $(':checkbox').prop('checked', $(obj).prop('checked')); }
ここでは、jQuery セレクターを使用してすべてのチェックボックスを選択し、プロップを使用します。 () メソッドを使用して、checked プロパティを設定します。
2. ThinkPHP を例に取ると、選択する必要のあるデータを取得し、それをビュー ページに渡すと仮定します。このとき、for ループを使用して各データを走査する必要があります。
<?php foreach($list as $data):?> <tr> <td><input type="checkbox" name="ckb[]" value="<?php echo $data['id'];?>" ></td> <td><?php echo $data['title'];?></td> </tr> <?php endforeach;?>
ここでは、操作を容易にするために、配列を使用してチェックボックスの値を渡します。チェックボックスの名前は です。 ckb[]
であり、それに対応する値は行 データの ID 値です。
3. 現時点では、フォームを送信するときに選択されているすべてのチェックボックスを取得し、それらの対応する値を新しい配列に結合して、すべてを選択する機能を実現するだけです。具体的な実装コードは次のとおりです。
public function all(){ $ids = input('post.ckb/a'); if(empty($ids)){ return $this->error('请选择要删除的数据!'); } $ids = implode(',',$ids); $where['id'] = array('in',$ids); $result = db('table')->where($where)->delete(); if($result){ return $this->success('删除成功!'); }else{ return $this->error('删除失败!'); } }
ここでは、input('post.ckb/a')
を使用して、フォーム送信時に渡されたすべてのチェックボックスの値を取得します。 implode( )
メソッドを使用すると、それが文字列に連結され、データベース内のデータのクエリに使用されます。
2. 一括削除機能の実装
一括削除機能を実現するには、先ほどの全選択機能を組み合わせる必要があり、具体的な手順は以下のとおりです。
##1. まず、ユーザーは削除する必要があるデータを選択し、削除ボタン (またはその他のカスタム ボタン) をクリックする必要があり、このとき、選択したデータを取得して削除する必要があります。 2. 操作を容易にするために、選択したすべてのデータ ID 値を文字列 (英語のカンマで区切った) に結合し、次の処理関数に渡すことができます。 3. where() 関数を使用して、削除条件をid in (ids) (ids は削除するすべてのデータの ID) に設定し、条件付きデータを削除するには、delete() 関数で十分です。
public function delete(){ $ids = input('post.ids/s',''); if(empty($ids)){ return $this->error('请选择要删除的数据!'); } $where['id'] = array('in',$ids); $result = db('table')->where($where)->delete(); if($result){ return $this->success('删除成功!'); }else{ return $this->error('删除失败!'); } }
以上がthinkphp ですべて選択および削除関数を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。