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

前后就同一了。

接口规范,js处理json,php返回给ajax的数据格式的更多相关文章

  1. servlet生成json数据返回至Ajax

    一.JSON JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符号标 ...

  2. json和xml以及ajax的数据格式用法

    JSON的两个方法: 1.将字符串转换为JSON格式:parse(). 2.将原生JavaScript值转换为JSON字符串:stringify(); <!DOCTYPE html> &l ...

  3. 本文使用springMVC和ajax,实现将JSON对象返回到页面

    一.引言 本文使用springMVC和ajax做的一个小小的demo,实现将JSON对象返回到页面,没有什么技术含量,纯粹是因为最近项目中引入了springMVC框架. 二.入门例子 ①. 建立工程, ...

  4. 最最基层的ajax交互代码jquery+java之间的json跨域传递以及java的json代码返回

    首先导入jar包 上面的jar包主要是用来将map或list数据转换成json字符串,传递到前台使用. 静态页面的代码:2.html <!DOCTYPE html> <html> ...

  5. js循环处理后台返回的json数组

    <script type="text/javascript"> function gongdan_search(elm){ var dangqian_value=$(e ...

  6. struts2 的验证框架validation如何返回json数据 以方便ajax交互

    struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror  />才能取出,(EL应该也可以). 如果使 ...

  7. ajax post json格式返回

    Ajax.aspx: Response.ContentType = "application/json"; Response.Write("{result: '" ...

  8. Js中JSON数据交换使用总结

    Json格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是JavaScript原 ...

  9. JS中将JSON的字符串解析成JSON数据格式《转》

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

随机推荐

  1. JavaScript tips —— target与currentTarget的区别

    定义 以下是红宝书的描述 属性/方法 类型 读/写 说明 currentTarget Element 只读 其事件处理程序当前正在处理事件的那个元素 target Element 只读 事件的目标 M ...

  2. js的callee和caller方法

    转载:http://www.css88.com/archives/1706 http://www.jb51.net/article/25561.htm 这里我们可以知道: caller的使用方法: f ...

  3. datagrid拖动列头更换排列顺序

    在做这个功能的时候在网上找了大量资料,发现都不适用,要不然就是代码太冗余,所以另起炉灶,自己封装了这个函数 下面是完整的代码: <!DOCTYPE html> <html> & ...

  4. uva 10305 拓扑排序裸题

    https://vjudge.net/problem/UVA-10305 目前没学dfs做法,用的队列做法,每次找到一个入度为零的点出队后更新其他点,再加入入度为零的点直到查找完毕,这个题目显然一定有 ...

  5. C++中static与const成员

    一.static成员 (1)static数据成员 static数据成员的创建是为了对象之间的共享和沟通,具有以下特点: 1.1 static数据成员属于类,只占一份空间(不像普通数据成员每个对象中都有 ...

  6. 【MAF】MAF插件框架简介

    引言    Managed Add-In Framework是一个插件式框架.它有两大作用,一个是解耦,插件和宿主由7个管道组成,两边都有适配器Adapter管道,能最大程度地降低插件和宿主的耦合度: ...

  7. ARM的异常处理方式

    1.什么是异常? 正常工作之外的流程都叫异常 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作 中断是异常的一种 2.异常向量表 所有的CPU都有异常向量表,这是CPU设 ...

  8. 内存保护机制及绕过方案——利用未启用SafeSEH模块绕过SafeSEH

    前言:之前关于safeSEH保护机制的原理等信息,可在之前的博文(内存保护机制及绕过方案中查看). 利用未启用SafeSEH模块绕过SafeSEH ⑴.  原理分析: 一个不是仅包含中间语言(1L)且 ...

  9. C# 为什么用接口实例化一个实现该接口的类?

    这是多态的体现. 首先接口不能实例化的. 实现接口的类 实例 = new 实现接口的类()// 这样用不好吗? //这样已经不是好不好的问题了,这样的话,要接口有什么用?//用接口就是让实例和实现类的 ...

  10. Python探索记(17)——函数

    # @Time : 2017/7/8 18:40 # @Author : 原创作者:谷哥的小弟 # @Site : 博客地址:http://blog.csdn.net/lfdfhl # @DESC : ...