1、首先在模板文件中需要调用的地方设置onclick事件,事件传递this过去,目的是用它来找到cateid,
<a cateid="{$lst.id}" "change_status(this)" class="btn btn-azure">{$lst.status}</a>
2、在模板文件中建立 JS函数,实现ajax
function change_status(o) {
var cateid = $(o).attr('cateid');//找到cateid的值
$.ajax({
type:"post",
dataType:"json",
data:{cateid:cateid},//把cateid传递到Controller里的方法中去
url:"{:url('Cate/change_status')}",//这是方法地址
success:function (data) {
//如果方法传回的值是1
if(data == 1){
$(o).text ('开启');
}else{
$(o).text('关闭');
}
}
});
}
3、在Controller的Cate类里写方法用来操作数据库,并返回数据
public function change_status(){
if(request()->isAjax()){
$cateid = input('cateid');//获得cateid,
$data = CateModel::get($cateid);//用cateid作为条件查询数据库
if($data->status == '开启'){//从数据库得到数据,作出判断,并echo值,用这个值JS做页面刷新
$data->status = 0;
$data->save();
echo 0 ;
}else if($data->status == '关闭'){
$data->status = 1;
$data->save();
echo 1;
}
}else{
$this->error('非法操作');
}
}