ajax異步獲取php數據。php
通常php會在後臺處理請求,並返回結果給前端。前端
必須是echo的方式,否則ajax獲取不到。ajax
返回的類型包括,字符串,數字,json。json
最經常使用的就是json。異步
返回後,前端會處理json成對象,而後使用。post
案例以下:url
ajaxspa
// 獲取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端接受到數據,處理,並返回結果(接口)code
// 定義接口返回值 $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()處理。
先後就同一了。