性能简述
单击黄色的“cancel”按钮,批改状态status的值toBeUsed为cancel,并将按钮换成红色的“delete”按钮)
其中,前端用jquery实现部分刷新;后端实现对数据库的操作(批改字段status的值为cancel)
前端
button标签的html代码
<button type="button" class="btn-warning" onclick="cancelReservation(this,{$eachreservation.reserveId})"> cancel</button>
html文件中的js代码
<script> function cancelReservation(obj,reserveId){ //----------可疏忽---------- $(obj).prev().text("cancel"); $(obj).removeAttr("class"); $(obj).attr("class","btn-danger"); $(obj).removeAttr("onclick"); $(obj).attr("onclick","deleteReservation(this,{$eachreservation.reserveId})"); $(obj).text("delete"); //----------要害是上面这部分---------- //ajax申请服务器批改订单状态 $.ajax({ //间接写办法则默认是以后控制器下的办法 url:'cancelreservation', //url全称 //"{:url('index/Reservation/cancelreservation')}", type:'post', dataType:'json', data: {reserveId:reserveId,status:'cancel'}, success:function(data){ // alert('cancel succcess'); } }); }</script>
后端
<?php/** * Created by PhpStorm. * Date: 2021/3/20 * Time: 19:37 */namespace app\index\controller;use think\Controller;use think\Request;//记得要引入Request,否则参数Request $request无奈应用class Reservation extends Controller{ //勾销订单 public function cancelreservation(Request $request) { if(empty(session('username'))){ $this->error('login please','index/Login/login'); } //助手函数更新数据表中的数据https://www.kancloud.cn/manual/thinkphp5/135178 db('myorder') ->where('reserveId',$request->param('reserveId')) ->update(['status' => $request->param('status')]); //$request->param外面是ajax传过来的键值对的key return "success"; }}
参考文章
TP5(thinkPHP5)框架基于ajax与后盾数据交互操作简略示例