接口规范,js处理json,php返回给ajax的数据格式-阿里云开发者社区

开发者社区> 桃子红了呐> 正文

接口规范,js处理json,php返回给ajax的数据格式

简介:
+关注继续查看

ajax异步获取php数据。

一般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()处理。

前后就同一了。



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/4977066.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP处理图片(orientation)旋转问题
PHP处理图片(orientation)旋转问题
1359 0
ajax处理前端 js 与后端 ModelAndView 数据绑定
ajax处理前端 js 与后端 ModelAndView 数据绑定
11 0
【项目积累】对JSON数据的处理
<p><span style="font-family:楷体; font-family:楷体; font-size:19px; line-height:27px; widows:auto">   <strong>【项目简述】</strong></span><strong><span style="font-family:楷体; font-family:楷体; font-size:19px;
2833 0
php在没用xdebug等调试工具的情况下如何让调试内容优雅地展现出来?--php数组格式化
  不知道各位猿猿们有没有碰到过类似的情况。装的PHP环境没有xdebug,而又经常用到数组。调试的时候也需要经常查看数组的结构和字段内容,用var_dump打印出来的数组内容总是杂乱无章。实在无法忍受,因而网上找了个格式化数组的方法,分享给大家。
581 0
ajax请求后台,返回json格式数据,模板!
添加一个用户的时候,需要找出公司下所有的部门,和相应部门下的角色,利用ajax请求,实现联动技术。将返回的json格式数据,添加到select标签下。           //加载出部门的信息            function loadGroup(){                            $.
923 0
【spring 注解 错误】使用controller 作为后台给前台ajax交互数据出错
controller作为后台与前台的ajax进行交互,后台的方法处理完成返回一个boolean类型的值,想传给前台用来判断是否执行成功,BUT,问题来了: 1 严重: Servlet.service() for servlet rest threw exception 2 java.
703 0
Ajax-12:请求超时与异常处理
Ajax-12:请求超时与异常处理
11 0
python3处理不标准json数据
keywords: python jsonsource: http://txw1958.cnblogs.com/ 先看下JSON的语法规则: JSON 语法规则JSON 语法是 JavaScript 对象表示法语法的子集。
863 0
异常处理 - PHP手册笔记
原文:异常处理 - PHP手册笔记 PHP代码中所产生的异常可被throw语句抛出,并被catch语句捕获。需要进行异常处理的代码都必须放入try代码块内,每一个try至少要有一个与之对应的catch。
804 0
4269
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载