thinkphp ですべて選択および削除関数を実装する方法

WBOY
リリース: 2023-06-02 19:48:39
転載
633 人が閲覧しました

1. すべて選択関数の実装

1. ビュー ファイルに、次のコードのような「すべて選択」ボタンを追加する必要があります。

<input type="checkbox" name="chkall" onclick="check_all(this)">
ログイン後にコピー

その中で、check_all() 関数は、すべてを選択または選択解除するためのものです。

function check_all(obj){
   $(&#39;:checkbox&#39;).prop(&#39;checked&#39;, $(obj).prop(&#39;checked&#39;));
}
ログイン後にコピー

ここでは、jQuery セレクターを使用してすべてのチェックボックスを選択し、プロップを使用します。 () メソッドを使用して、checked プロパティを設定します。

2. ThinkPHP を例に取ると、選択する必要のあるデータを取得し、それをビュー ページに渡すと仮定します。このとき、for ループを使用して各データを走査する必要があります。

<?php foreach($list as $data):?>
<tr>
    <td><input type="checkbox" name="ckb[]"  value="<?php echo $data[&#39;id&#39;];?>" ></td>
    <td><?php echo $data[&#39;title&#39;];?></td>
</tr>
<?php endforeach;?>
ログイン後にコピー

ここでは、操作を容易にするために、配列を使用してチェックボックスの値を渡します。チェックボックスの名前は です。 ckb[] であり、それに対応する値は行 データの ID 値です。

3. 現時点では、フォームを送信するときに選択されているすべてのチェックボックスを取得し、それらの対応する値を新しい配列に結合して、すべてを選択する機能を実現するだけです。具体的な実装コードは次のとおりです。

public function all(){
   $ids = input(&#39;post.ckb/a&#39;);
   if(empty($ids)){
       return $this->error(&#39;请选择要删除的数据!&#39;);
   }
   $ids = implode(&#39;,&#39;,$ids);
   $where[&#39;id&#39;] = array(&#39;in&#39;,$ids);
   $result = db(&#39;table&#39;)->where($where)->delete();
   if($result){
       return $this->success(&#39;删除成功!&#39;);
   }else{
       return $this->error(&#39;删除失败!&#39;);
   }
}
ログイン後にコピー

ここでは、input('post.ckb/a')を使用して、フォーム送信時に渡されたすべてのチェックボックスの値を取得します。 implode( ) メソッドを使用すると、それが文字列に連結され、データベース内のデータのクエリに使用されます。

2. 一括削除機能の実装

一括削除機能を実現するには、先ほどの全選択機能を組み合わせる必要があり、具体的な手順は以下のとおりです。

##1. まず、ユーザーは削除する必要があるデータを選択し、削除ボタン (またはその他のカスタム ボタン) をクリックする必要があり、このとき、選択したデータを取得して削除する必要があります。

2. 操作を容易にするために、選択したすべてのデータ ID 値を文字列 (英語のカンマで区切った) に結合し、次の処理関数に渡すことができます。

3. where() 関数を使用して、削除条件を

id ​​in (ids) (ids は削除するすべてのデータの ID) に設定し、条件付きデータを削除するには、delete() 関数で十分です。

具体的な実装コードは次のとおりです:

public function delete(){
   $ids = input(&#39;post.ids/s&#39;,&#39;&#39;);
   if(empty($ids)){
       return $this->error(&#39;请选择要删除的数据!&#39;);
   }
   $where[&#39;id&#39;] = array(&#39;in&#39;,$ids);
   $result = db(&#39;table&#39;)->where($where)->delete();
   if($result){
       return $this->success(&#39;删除成功!&#39;);
   }else{
       return $this->error(&#39;删除失败!&#39;);
   }
}
ログイン後にコピー

以上がthinkphp ですべて選択および削除関数を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート