php教程

超轻量级php框架startmvc

thinkPHP批量删除的实现方法分析

更新时间:2020-03-14 20:50:27 作者:startmvc
本文实例讲述了thinkPHP批量删除的实现方法。分享给大家供大家参考,具体如下:html:<li&g

本文实例讲述了thinkPHP批量删除的实现方法。分享给大家供大家参考,具体如下:

html:


<li>
  <a class="delete" href="__URL__/deleteSelected/navTabId/__MODULE__" target="selectedTodo" posttype="string" calback="navTabAjaxMenu" rel='ids' title="你确定要删除吗?" warn="请选择节点"><span>批量删除</span></a>
</li>
<table class="table" width="100%" layoutH="138">
 <thead>
 <tr>
 <th width="10"><input type="checkbox" class="checkboxCtrl" group="ids" /></th>
 <th width="60">编号</th>
 </tr>
 </thead>
 <tbody>
 <volist id="vo" name="list">
 <tr>
 <td><input name="ids" type="checkbox" value="{$vo.id}"> </td>
 <td>{$vo['id']}</td>
 </tr>
 </volist>
</table>

php:


public function deleteSelected() {
 //删除指定记录
 $name = $this->getActionName();
 $model = D($name);
 if (!empty($model)) {
 $pk = $model->getPk();
 $ids = $_REQUEST['ids'];
 if (!empty($ids)) {
 $condition = array($pk => array('in', explode(',', $ids)));
 if (false !== $model->where($condition)->delete()) {
 $sql = $model->_sql();
 $this->success("删除成功!");
 } else {
 $this->error('删除失败!');
 }
 } else {
 $this->error('非法操作');
 }
 }
}

原理是根据Web表单提交时可以传递数组,例如:


<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="text" name="email">
<input type="text" name="address">
<input type="text" name="tree[tree1][fruit]">
<input type="text" name="tree[tree1][height]">
<input type="text" name="tree[tree2][fruit]">
<input type="text" name="tree[tree2][height]">
<input type="text" name="tree[tree3][fruit]">
<input type="text" name="tree[tree3][height]">

则传递过来的是:


$_POST[] = array(
 'firstname'=>'value',
 'lastname'=>'value',
 'email'=>'value',
 'address'=>'value',
 'tree' => array(
 'tree1'=>array(
 'fruit'=>'value',
 'height'=>'value'
 ),
 'tree2'=>array(
 'fruit'=>'value',
 'height'=>'value'
 ),
 'tree3'=>array(
 'fruit'=>'value',
 'height'=>'value'
 )
 )
)

thinkPHP 批量删除