thinkphp5框架结合ajax异步交互修改状态非物理删除的方法

thinkphp5框架结合ajax异步交互修改状态非物理删除的方法

封装js删除方法

在thinkphpwu/public/static/admin/js 创建common.js

在这里插入图片描述

/**
 * 通用化删除操作
 * @param obj
 */
function app_del(obj) {

    alert("dianji");

    // 获取模板当中的url地址
    url = $(obj).attr('del_url');

    layer.confirm('确认要删除吗?', function (index) {
        $.ajax({
            type: 'POST',
            url: url,
            dataType: 'json',
            success: function (e) {
                if (e.code == 1) {
                    // 执行跳转
                    self.location = e.data.jump_url;
                } else if (e.code == 0) {
                    layer.msg(e.msg, {icon: 2, time: 2000});
                }
            },
            error: function (e) {
                console.log(e.msg);
            },
        });
    });
}

视图html文件引用

<a style="text-decoration:none" class="ml-5"
onClick="app_del(this)" del_url="{:url('news/delete', ['id'=>$v.id])}" href="javascript:;"
title="删除"><i class="Hui-iconfont">&#xe6e2;</i></a>

将common.js放入到公用的底部文件中

{load href="__STATIC__/admin/js/common.js"}

在这里插入图片描述

base基类创建delete方法

在base基类文件中创建公共的delete删除方法,并非屋里删除,而是修改状态,这样的话,不用在所有的控制器中新建delete方法了,

 /**
     * 删除逻辑
     */
    public function delete($id = 0)
    {
        if (!intval($id)) {
            return $this->result('', 0, 'ID不合法');
        }

        // 通过id 去库中查询下记录是否存在

        // 如果你的表和我们控制器文件名 一样。 news news
        // 但是我们 不一样。 需要在控制器层,修改model的值,

        $model = $this->model ? $this->model : request()->controller();
        // 如果php php7  $model = $this->model ?? request()->controller();

        try {
            $res = model($model)->save(['status' => -1], ['id' => $id]);
        } catch (\Exception $e) {
            return $this->result('', 0, $e->getMessage());
        }

        if ($res) {
            return $this->result(['jump_url' => $_SERVER['HTTP_REFERER']], 1, 'OK');
        }
        return $this->result('', 0, '删除失败');

    }

效果展示

在这里插入图片描述
在这里插入图片描述数据库中
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值