tp5 异步处理_异步提交插件

本文档详细介绍了使用ThinkPHP5框架进行插件的异步安装和卸载。通过前端JavaScript的Ajax调用,实现点击按钮触发后台的addonmanage方法,该方法根据传入的状态决定执行安装或卸载操作。后台处理部分展示了如何定义安装和卸载方法,通过改变数据库中插件的状态完成操作。
摘要由CSDN通过智能技术生成

[TOC]

## 前端代码

引入相关文件在此省略,注意回调函数的对象(var that = $(this);)即可

```

{volist name="addonslist" id="vo"}

{switch name="vo.status"}

{case value="0"}安装  {/case}

{case value="1"}卸载  {/case}

{/switch}

{/volist}

```

```

$(document).ready(function() {

$(".addonmanage").click(function() {

var url = $(this).attr('href');

var title = $(this).attr('title');

var that = $(this);

$.ajax({

type: "POST",

dataType:"json",

url:url,

data:{},

success:function(obj){

if(obj.status==200){

layer.open({

content: obj.msg,

btn: ['确定'],

shade: 0.1,

icon: 1,

end: function(){

// 修改状态显示

if(title=='安装'){

that.attr('title','卸载');

that.text('卸载');

}else{

that.attr('title','安装');

that.text('安装');

}

}

});

}else{

layer.open({

content: obj.msg,

btn: ['确定'],

shade: 0.1,

icon: 2

});

}

}

});

return false; //终止a标签打开href

});

});

```

## 后台处理

```

/**

*

* 插件安装和卸载

* @return bool

*/

public function addonmanage(){

if(request()->isPost()){

$id = input('id');

// 获取status值,0为安装,1为卸载

$addons = Db::name('addons')->where('id',$id)->find();

$class = \think\Loader::parseName($addons['name'],1); //首字母大写

$namespace = "\\addons\\" . $addons['name'] . "\\" . $class;

$book = new $namespace();

if($addons['status']){

// 已安装则卸载

$result = $book->uninstall();

if($result){

$data['status'] = 200;

$data['msg'] = '已卸载!';

}else{

$data['status'] = 202;

$data['msg'] = '卸载失败!';

}

}else{

$result = $book->install();

if($result){

$data['status'] = 200;

$data['msg'] = '已安装!';

}else{

$data['status'] = 202;

$data['msg'] = '安装失败!';

}

}

return json($data);

}

}

```

## 安装方法

```

// 插件安装方法(测试)

public function install(){

$result = Db::name('addons')->where('name','book')->setField('status',1);

return $result;

}

```

## 卸载方法

```

// 插件卸载方法

public function uninstall(){

$result = Db::name('addons')->where('name','book')->setField('status',0);

return $result;

}

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值