Home > PHP Framework > ThinkPHP > body text

How to implement the select all and delete functions in thinkphp

WBOY
Release: 2023-06-02 19:48:39
forward
644 people have browsed it

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)">
Copy after login

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;));
}
Copy after login

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;?>
Copy after login

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;);
   }
}
Copy after login

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;);
   }
}
Copy after login

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!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template