接口规范,js处理json,php返回给ajax的数据格式
2015-11-19 11:23
1151 查看
ajax异步获取php数据。
一般php会在后台处理请求,并返回结果给前端。
必须是echo的方式,不然ajax获取不到。
返回的类型包括,字符串,数字,json。
最常用的就是json。
返回后,前端会处理json成对象,然后使用。
案例如下:
ajax
php端接受到数据,处理,并返回结果(接口)
这里的success表示成功,失败。
error_code表示提示信息。
datalist可以返回结果集。
这还是很规范的,以后可以使用这三个参数作为接口返回。
php端对数据,进行json_encode()处理。
js端会数据进行JSON.parse()处理。
前后就同一了。
一般php会在后台处理请求,并返回结果给前端。
必须是echo的方式,不然ajax获取不到。
返回的类型包括,字符串,数字,json。
最常用的就是json。
返回后,前端会处理json成对象,然后使用。
案例如下:
ajax
// 获取good_id,store_id,user_id var good_id = '{sh:$goods.id}'; var store_id = '{sh:$goods.store_id}'; var user_id = '{sh:$user_id}'; //alert('{sh:$token}'); // ajax 加入收藏 $.ajax({ type: "post", url: "{sh::U('User/ajax',array('token'=>$token,'id'=>$goods['id']))}", data: "do=addcollect&good_id=" + good_id + "&store_id=" + store_id + "&user_id=" + user_id, success: function(data) { var data = JSON.parse(data); // 解析成json对象 if (data.success == 1) { return floatNotify.simple(data.error_code); } else { return floatNotify.simple(data.error_code); } } });
php端接受到数据,处理,并返回结果(接口)
// 定义接口返回值 $success = ''; $error_code = ''; $datalist = array(); $do = trim($_REQUEST['do']); switch ($do) { case 'addcollect': $good_id = trim($_REQUEST['good_id']); $store_id = trim($_REQUEST['store_id']); $user_id = trim($_REQUEST['user_id']); // 查询是否已存在,不要重复添加 $model = M('WxuserCollection'); $data = $model - >create(); $count = $model - >where(array('user_id' = >$user_id, 'good_id' = >$good_id, 'store_id' = >$store_id)) - >getField('count(*)'); if ($count > 0) { // 已收藏,请勿重复添加 $success = '2'; $error_code = '已收藏'; } else { $data['addtime'] = time(); $res = $model - >data($data) - >add(); // 返回值为自增id if ($res) { // 收藏成功 $success = '1'; $error_code = '收藏成功'; } else { // 收藏失败 $success = '0'; $error_code = '收藏失败'; } } // 返回json数据,或者字符串,数字。 $json = array('success' = >$success, 'error_code' = >$error_code, 'datalist' = >$datalist); echo json_encode($json); break;
这里的success表示成功,失败。
error_code表示提示信息。
datalist可以返回结果集。
这还是很规范的,以后可以使用这三个参数作为接口返回。
php端对数据,进行json_encode()处理。
js端会数据进行JSON.parse()处理。
前后就同一了。
相关文章推荐
- VSFTP再配置 我里个去马蛋网上这么多烂文章,走了好多弯路
- PHP可以做什么?
- 在php页面中显示数据库内容时,中文显示乱码
- PHPEXCEL在thinkphp中封装成类使用
- PHP可以做什么?
- php有效防止同一用户多次登录
- PHP中die和exit的区别
- 带你了解PHP7 性能翻倍的关键
- PHP xdebug的安装
- php curl模拟post请求和提交多维数组的示例代码
- 解决win10 phptoshop #fff纯白不是这样的白 显示器高级的问题
- phpStudy访问速度慢和启动失败的解决办法
- php取整函数ceil,floor,round,intval函数的区别
- window 平台上面解决不能动态php_mysqli.dll
- PHP小数处理常用函数
- Thinkphp 基础知识总结-配置-错误
- php中的魔术常量__FILE__
- [Windows Server 2003] 安装IIS6.0及FTP
- 一种解决方法tcsetattr fd1: input/output error
- Rolling cURL: PHP并发最佳实践