ajax异步获取php数据。

一般php会在后台处理请求,并返回结果给前端。

必须是echo的方式,不然ajax获取不到。

返回的类型包括,字符串,数字,json。

最常用的就是json。

返回后,前端会处理json成对象,然后使用。

案例如下:

ajax

  1. // 获取good_id,store_id,user_id
  2. var good_id = '{sh:$goods.id}';
  3. var store_id = '{sh:$goods.store_id}';
  4. var user_id = '{sh:$user_id}';
  5. //alert('{sh:$token}');
  6. // ajax 加入收藏
  7. $.ajax({
  8. type: "post",
  9. url: "{sh::U('User/ajax',array('token'=>$token,'id'=>$goods['id']))}",
  10. data: "do=addcollect&good_id=" + good_id + "&store_id=" + store_id + "&user_id=" + user_id,
  11. success: function(data) {
  12. var data = JSON.parse(data); // 解析成json对象
  13. if (data.success == 1) {
  14. return floatNotify.simple(data.error_code);
  15. } else {
  16. return floatNotify.simple(data.error_code);
  17. }
  18. }
  19. });

php端接受到数据,处理,并返回结果(接口)

  1. // 定义接口返回值
  2. $success = '';
  3. $error_code = '';
  4. $datalist = array();
  5. $do = trim($_REQUEST['do']);
  6. switch ($do) {
  7. case 'addcollect':
  8. $good_id = trim($_REQUEST['good_id']);
  9. $store_id = trim($_REQUEST['store_id']);
  10. $user_id = trim($_REQUEST['user_id']);
  11. // 查询是否已存在,不要重复添加
  12. $model = M('WxuserCollection');
  13. $data = $model - >create();
  14.  
  15. $count = $model - >where(array('user_id' = >$user_id, 'good_id' = >$good_id, 'store_id' = >$store_id)) - >getField('count(*)');
  16. if ($count > 0) {
  17. // 已收藏,请勿重复添加
  18. $success = '2';
  19. $error_code = '已收藏';
  20. } else {
  21. $data['addtime'] = time();
  22. $res = $model - >data($data) - >add(); // 返回值为自增id
  23. if ($res) {
  24. // 收藏成功
  25. $success = '1';
  26. $error_code = '收藏成功';
  27. } else {
  28. // 收藏失败
  29. $success = '0';
  30. $error_code = '收藏失败';
  31. }
  32. }
  33. // 返回json数据,或者字符串,数字。
  34. $json = array('success' = >$success, 'error_code' = >$error_code, 'datalist' = >$datalist);
  35. echo json_encode($json);
  36. 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. Android中getDimension,getDimensionPixelOffset和getDimensionPixelSize 区别

    getDimension 获取某个dimen的值,如果是dp或sp的单位,将其乘以density,如果是px,则不乘   返回float getDimensionPixelOffset 获取某个dim ...

  2. 用JS判断IE版本的代码

    方法一: 复制代码代码如下: <script language="javascript"> function getIE() { if(navigator.appNam ...

  3. python学习笔记(接口自动化框架 V1.0)

    之前是利用python自带的unittest测试框架 这次自己设计一个 之后再一点点往里面加功能 (ps:当然这个框架真的是很简单..很简单...很简单...) excel文件格式: #!/usr/b ...

  4. vs添加静态链接库+添加动态链接库+添加头文件目录

    头文件添加方法:工程---属性---配置属性---c/c++---常规---附加包含目录(Additional Include Directories):加上头文件存放目录.注意:(1)路径必须指向头 ...

  5. WPF DataGrid 分组

    public ListCollectionView collection; collection = new ListCollectionView(obj.empData); collection.G ...

  6. C#—序列化(Serialize)和反序列化(NonSerialize)

    (转自:http://www.cnblogs.com/Abel-Zhang/p/Serialize.html) 一.概述 序列化是把对象转变成流.相反的过程就是反序列化. 哪些场合用到这项技术呢? 1 ...

  7. 点击bindingNavigatorAddNewItem 关联的dataGridView不会新增一行

    方法一. 在设计界面,修改bindingNavigator1的属性AddNewItem 为“(无)”: 方法二. 在设计器自动生成的代码中找到这一行:             // bindingNa ...

  8. 剑指offer--29.从上往下打印二叉树

    层序遍历,队列 ------------------------------------------------------------------------------------- 时间限制:1 ...

  9. New Concept English three (29)

    1听力和打字训练: 31w/m 54 typing errors Whether we find a joke funny or not largely depends on were we have ...

  10. C++抽象类的实现

    1.什么是抽象类? 答:简单的说,抽象类就是至少有一个纯虚函数的类. 2.抽象类的作用? 答:抽象类的主要作用就是为它所组织的继承层次结构提供一个公共的基类,这样它就具有公有行为的特征,其它派生的类可 ...