ecshop中ajax调用原理.doc
文本预览下载声明
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} onclick=searchUser(); /
select name=user_search[] id=user_search size=15 style=width:260px ondblclick=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=1act=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_x(OPTION);
opt.value = result.content[i].user_id;
opt.text = result.content[i].user_name;
eles[user_sear
显示全部