• 接口规范,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()处理。

    前后就同一了。

  • 相关阅读:
    (转)关于IBM小机P520的面板使用
    (转)mysql的sql_mode合理设置
    (转)Mysql技术内幕InnoDB存储引擎-事务&备份&性能调优
    杨辉三角
    异或的陷阱(转)
    通过数组看栈堆
    数组的一些知识点和插入选择冒泡排序
    运算符
    Java的变量相关
    有符号的数据表示法(原、反、补)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/4977066.html
Copyright © 2020-2023  润新知