ecshop中ajax的调用原理

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

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=1&act=search_users', 'keywords=' + keywords, searchUserResponse, "GET", "JSON");  }}function searchUserResponse(result)var eles = document.forms['theForm'].elements;  eles['user_search[]'].length = 0if (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);}


 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/gdfjhc/article/details/84194955
今日推荐