ThinkPHP3.2.3选择多个CheckBox删除多条数据的实现(使用AJAX提交数据)

来源:互联网 发布:mp5淘宝 编辑:程序博客网 时间:2024/06/05 15:13

这个自己写了一部分,也借鉴了下别人的,功能有很多不足(有时间我会继续改进),如果有心人路过看到还望能留言解决下,谢了(在底部我会列出来)。

HTML页面:

关键的两个标签

<a class="btn btn-xs btm-input btn-purple" onclick="deleteCheckBox()" id="sc" style="width: 60px" href="javascript:void(0);">    删除</a>...
<td class=""><input type="checkbox" name="sqdh[]" value="{$mx.sqdh}" ></td><td class="">{$mx.xxbbh}</td>

Javascript部分

<script>    function deleteCheckBox() {        //弹出提示,是否确定删除        if (confirm("确定要删除吗?")) {            //将所有复选框的默认值放入数组中            var check = document.getElementsByName('sqdh[]');            var sqdh = new Array();            //将所有选中复选框的默认值写入到数组中            for (var i = 0; i < check.length; i++) {                if (check[i].checked)                    sqdh.push(check[i].value);            }            //ajax开始运行            $.ajax({                url: "{:U('hzzfsc')}",                type: "post",                dataType: "json",                data: {sqdh: sqdh},                success: function (msg) {                    //ajax成功返回数据要执行的代码                    location.reload(true);                }            });        }    }
</script>
PHP部分

public function hzzfsc(){    //接收ajax传过来的值    $sqdh = I('post.sqdh');    //判断传过来的数组是否有值    if (!empty($sqdh)) {        //循环删除传过来的所有对应的消息        foreach ($sqdh as $v) {            $condition['sqdh'] = $v;            //删除该对应的数据            $result_temp1 = M('主表名称')->where($condition)->delete();            $result_temp2 = M('子表名称')->where($condition)->delete();        }        if ($result_temp1 !== false && $result_temp2 !== false) {            $this->success();        } else {            $this->error();        }    }}
不足之处:

1.是否确定要删除那儿需要优化,如果不进行选择,点击删除按钮时也会弹出“确定要删除吗”信息,如果在没选择的情况下应该弹出“请选择要删除项”会更妥一些;

2.虽然使用了ajax但是页面在形式上还是刷新的,大概是用了代码中用了 location.reload(true);如果不用的话再点击删除按钮后删除项还在(但是数据库里面没有了),刷新一次页面后才会消失;

3.后台PHP代码走到success时,如果填入提示成功信息,则删除后不会提示该成功信息。

好了,就这些啦,以后会慢慢改进的!

原创粉丝点击