ecshop中ajax的调用原理
1:首先ecshop是如何定义ajax对象的。
ecshop中的ajax对象是在js/transport.js文件中定义的。里面是ajax对象文件。声明了一个var Ajax = Transport;对象和一个方法Ajax.call = Transport.run;
2:ecshop中ajax可以使用两种方式传递数据.一种是get方式,一种是post方式.
Ajax.call( 'user.php?act=is_registered', 'username=' + username, registed_callback , 'GET', 'TEXT', true, true );
Ajax.call('user.php?act=return_to_cart', 'order_id=' + orderId, returnToCartResponse, 'POST', 'JSON');
3:ecshop中的 ajax可以是传递text数据,也可以是一个json对象。比如以下代码
goods.quick = quick;
goods.spec = spec_arr;
goods.goods_id = goodsId;
goods.number = number;
goods.parent = (typeof(parentId) == "undefined") ? 0 : parseInt(parentId);
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
里面的goods就是对象.而且是靠json来传递的。返回的结果result也是对象.
4:ecshop ajax函数里面.第三个参数就是回掉函数的名称。比如以上代码addToCartResponse 这个函数就是ajax处理结果的回调函数.
5:在ecshop的php代码中,一般是通过get或者post方式来接受函数。比如以下例子,如果接受的是对象。还需要用json数据格式来处理.比如以下
include_once('includes/cls_json.php');
$_POST['goods'] = json_str_iconv($_POST['goods']);
处理的返回结果,也需要是json格式发送给js
die($json->encode($result));
例如:
HTML
<input type="button" name="search" value="{$lang.button_search}" οnclick="searchUser();" /><select name="user_search[]" id="user_search" size="15" style="width:260px" οndblclick="addUser()" multiple="true"></select>
/**
* 按用户名搜索用户
*/
function searchUser()
{var eles = document.forms['theForm'].elements;/* 填充列表 */var keywords = Utils.trim(eles['keyword'].value);if (keywords != ''){Ajax.call('bonus.php?is_ajax=1&act=search_users', 'keywords=' + keywords, searchUserResponse, "GET", "JSON");}
}function searchUserResponse(result)
{var eles = document.forms['theForm'].elements;eles['user_search[]'].length = 0;if (result.error == 0){for (i = 0; i < result.content.length; i++){var opt = document.createElement('OPTION');opt.value = result.content[i].user_id;opt.text = result.content[i].user_name;eles['user_search[]'].options.add(opt);}}
}
php代码
/*------------------------------------------------------ */
//-- 搜索用户
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'search_users')
{$keywords = json_str_iconv(trim($_GET['keywords']));$sql = "SELECT user_id, user_name FROM " . $ecs->table('users') ." WHERE user_name LIKE '%" . mysql_like_quote($keywords) . "%' OR user_id LIKE '%" . mysql_like_quote($keywords) . "%'";$row = $db->getAll($sql);make_json_result($row);
}
ecshop中ajax的调用原理相关推荐
- 在windows下CorelDraw中VBE的调用原理?
文章目录 1.谁加载了这几个库 2.apc71是什么? 3.作者答疑 直接启动CorelDraw,查看其加载模块,发现并没有加载VBE7.DLL.VBEUI.DLL和VBEUIRES.DLL,说明启动 ...
- python中selenium中使用ajax_selenium 智能等待ajax完成调用
selenium 智能等待ajax完成调用 使用webdriverwater 传入一个lambda表达式 判断 ajax调用转台 当 jquery.active==0 表示ajax调用完成 仅在jqu ...
- ajax离开页面方法,jQuery中ajax调用当前页面方法
$.ajax({ type: 'POST', url: 'AddressManager.aspx/GetProvince',//AddressManager.aspx当前页面 data: '{cach ...
- 【dubbo源码解析】--- dubbo中Invoker嵌套调用底层原理
本文对应源码地址:https://github.com/nieandsun/dubbo-study 文章目录 1 dubbo中Invoker的重要性 2 dubbo RPC链条中代理对象的底层逻辑 2 ...
- 调用$.ajax不成功,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- jQuery中getJSON跨域原理详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp28 jQuery中getJSON跨域原理详解 前几天我再开发一个叫 河蟹工 ...
- AJAX入门——工作原理
理解同步交互和异步交互 举个例子:普通B/S模式(同步) AJAX技术(异步) * 同步: 提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不 ...
- ArcGIS Server 中AJAX应用系列(3)
本文部分取自ESRI翻译部分及网络,其他文字版权归小能所有,转载麻烦标明出处,谢谢! 写作过程中也参阅了大量其他网络文档,如果您觉得侵犯版权,请和我联系:chinazhousheng@gmail.co ...
- jquery中ajax中的参数,jquery中的ajax参数
jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参 ...
最新文章
- Ubuntu快速重装软件的技巧
- vs2012中程序集生成无法自动在网站Bin目录下生成Dll文件?(已解决!)
- n 模块切换 node 版本无效的解决办法
- Java集合TreeSet
- Android对应用程序签名
- java记录log信息
- 原生Js_实现广告弹窗
- db2中TRANSLATE函数可以实现简单的正则(不属于真正的正则表达式)
- 兼容性问题总结(转)
- 学习c++ 必知三大特性
- java 有限状态机_有限状态机( Finite State Machine )JAVA 版
- (经典)详解WINDOWS映像劫持技术
- 上下调基因和代谢物--不同颜色显示在同一张KEGG通路图中
- ES 条形图 histogram
- matlab 绘制扇形区域
- OpenMV学习(0):环境搭配
- 关闭电脑弹窗广告的几种方法
- 十一届蓝桥模拟赛 元辅音字母 JAVA
- zabbix邮件报警发送至qq邮箱
- 菜鸟教程 + Java基础课程 + part2
热门文章
- 案例分析 陆金所_平安陆金所介绍-关于陆金所-平安陆金所
- redissession有容量上限吗_空气炸锅值得买吗?
- jquery发送put请求_浅谈GET,POST,PUT发送请求
- android知乎多图片选择,知乎开源图片选择库 Matisse
- 2017年计算机四级试题,2017年全国计算机四级考试模拟试题与答案
- linux pcre-devel,ubuntu - 我应该为'pcre-devel'安装什么软件包? - Ubuntu问答
- 计算点云之间的平均距离,方差,标准差
- Linux那些事儿 之 戏说USB(12)接口是设备的接口(一)
- 【模板】树链剖分 P3384
- python归一化代码_python中的快速图像归一化