Home  >  Article  >  PHP Framework  >  How to implement the select all and delete functions in thinkphp

How to implement the select all and delete functions in thinkphp

WBOY
WBOYforward
2023-06-02 19:48:39602browse

1. Implementation of select all function

1. In the view file, we need to add a select all button, similar to the following code:

<input type="checkbox" name="chkall" onclick="check_all(this)">

Among them, the check_all() function is to select or deselect all:

function check_all(obj){
   $(&#39;:checkbox&#39;).prop(&#39;checked&#39;, $(obj).prop(&#39;checked&#39;));
}

Here, the jQuery selector is used to select all checkboxes and Use the prop() method to set its checked property.

2. Taking ThinkPHP as an example, we assume that we have obtained the data that needs to be selected and passed it to the view page. At this time, we need to use a for loop to traverse each data and add it checkbox and ID, the code is as follows:

<?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;?>

Here, in order to facilitate the operation, an array is used to pass the value of the checkbox. The name of the checkbox is ckb[], and its corresponding value is the line The ID value of the data.

3. At this time, we only need to obtain all selected checkboxes when submitting the form and combine their corresponding values ​​into a new array to achieve the function of selecting all. The specific implementation code is as follows:

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;);
   }
}

Here, input('post.ckb/a') is used to obtain the values ​​of all checkboxes passed when submitting the form, using implode( ) method concatenates it into a string and uses it to query data in the database.

2. Implementation of batch deletion function

To realize the batch deletion function, you need to combine the previous selection all function. The specific steps are as follows:

1. First, The user needs to select the data that needs to be deleted, and then click the delete button (or other custom button). At this time, the selected data needs to be obtained and deleted.

2. In order to facilitate operation, we can combine all selected data ID values ​​into a string (separated by English commas), and then pass it to the next processing function.

3. Use the where() function to set the deletion condition to id in (ids) (where ids is the ID of all the data to be deleted), and then use the delete() function to delete the Conditional data is enough.

The specific implementation code is as follows:

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;);
   }
}

The above is the detailed content of How to implement the select all and delete functions in thinkphp. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete