ecsho ajax提交表单,请问ecshop中的ajax怎么用?

本文详细解析了AJAX在JavaScript中的实现,包括在js/transport.js文件中定义的AJAX对象及其使用。阐述了AJAX如何通过GET和POST方式传递数据,特别是如何处理JSON对象。同时,介绍了回调函数在处理AJAX响应中的应用,以searchUser()函数为例展示了如何定义和调用回调函数。在PHP端,接收和处理JSON数据的方法也进行了说明。
摘要由CSDN通过智能技术生成

ajax对象是在js/transport.js文件中定义的。里面是ajax对象文件。声明了一个var Ajax = Transport;对象和一个方法Ajax.call = Transport.run;

2: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 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: ajax函数里面.第三个参数就是回掉函数的名称。比如以上代码addToCartResponse 这个函数就是ajax处理结果的回调函数.

5:在php代码中,一般是通过get或者post方式来接受函数。比如以下例子,如果接受的是对象。还需要用json数据格式来处理.比如以下

include_once('includes/cls_json.php');

$_POST['goods'] = json_str_iconv($_POST['goods']);

处理的返回结果,也需要是json格式发送给js

die($json->encode($result));

例如:

HTML

[html] view plaincopy

[javascript] view plaincopy

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_x('OPTION');

opt.value = result.content[i].user_id;

opt.text = result.content[i].user_name;

eles['user_search[]'].options.add(opt);

}

}

}

php代码

[php] view plaincopy

//-- 搜索用户

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值