小随笔——20180318
♠ ♥ ♦ ♣ 该文章仅为平时的笔记,非商用,如有侵权请联系博主删除 ♣ ♦ ♥ ♠
环境:Apache + ThinkPHP + Mysql + Ajax
相关问题描述:
使用ThinkPHP5搭建大型商城后台的时候,需要使用Ajax来进行异步更新(增加、删除等)数据。
菜鸟级步骤:
1、导入jQuery文件:
可以使用CDN,也可以去已有网站趴一个
<script type="text/javascript" src="jquery.min.js" ></script>
2、给相关按钮(链接)添加js函数:({$value.id})是通过控制器传过来的数据
<a title="删除" href="javascript:member_del({$value.id})" class="" </a>
3、书写Ajax代码:
//Ajax请求控制器中的方法完成数据的删除
function member_del(id){
var url = "../member/del_member"; //控制器中的方法(不用框架的小伙伴用test.php文件也行)
var data = {"id":id}; //刚才a标签传来的的参数
var success = function(response){ //如果php处理成功,调用此方法
if (response.errno == 0) { //这部分结合下方php代码来看
$("#tr-"+id).remove(); //把这个id的数据在html中自动删除
}
}
$.get(url,data,success,"json");
}
3、在php中处理Ajax传过来的数据(可以是PHP框架的方法,也可以是独立的.php文件,这里使用的是ThinkPHP框架,member控制器中的del_member()方法)
//删除会员
public function del_member()
{
$id = input('get.id'); //接收前端Ajax传过来的数据
//实例化数据模型,并操作。若没有用框架的小伙伴,按照PHP处理数据库来操作就行
$user = new \app\admin\model\Member;
$result = $user -> save([
'is_use' =>'0',
],['id'=>$id ]);
//如果删除成功,封装json数据
if ($result) {
$response = array(
'errno' => 0,
'errmsg'=>'success',
'data'=>true
);
}else{
$response = array(
'errno' => -1,
'errmsg'=>'fail',
'data'=>false
);
}
echo json_encode($response); //返回json数据
}
5、可能的错误:
在谷歌浏览器调试时(按F12),可能会出现请求的页面的status为canceled,此时,在a标签(或其他调用jquery代码组件)中,只用href或者onclick一个就行,不能两个一起用,详情请参考:
http://blog.youkuaiyun.com/u010855333/article/details/60766096
6、完成
知识参考:慕课网视频https://www.imooc.com/video/11457/0
仅作为日常笔记使用,有点简单,大家有什么想法也可以交流哟~