接口規范,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()處理。

前后就同一了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM