ecshop后台通过ajax搜索原理

ecshop的搜索其实是功能十分强大的,但是ecshop搜索功能前台和后台还不大一样,前台主要是通过get方式,提交的url进行分页,而在ecshop的后台,则是接受表单的搜索条件,然后通过js发布到ajax.最后又通过ecshop的ajax将结果返回.然后在显示最后的搜索结果. 我们来
ecshop的搜索其实是功能十分强大的,但是ecshop搜索功能前台和后台还不大一样,前台主要是通过get方式,提交的url进行分页,而在ecshop的后台,则是接受表单的搜索条件,然后通过js发布到ajax.最后又通过ecshop的ajax将结果返回.然后在显示最后的搜索结果.
   我们来举个例子,具体分析下ecshop后台通过ajax方式来进行搜索.
   比如我们通过ecshop后台的ajax方式来搜索退换货订单
   1:必须在htm中增增加以下搜索框,订单号 <input type="text" name="order_sn" size="15" />
   2:html中的ajax可以写成以下格式
       listTable.filter['order_sn'] = Utils.trim(document.forms['searchForm'].elements['order_sn'].value);
       listTable.filter['page'] = 1;
        listTable.loadList();
     我们可以看到以下,就是通过listTable.loadList();来触发ajax的。
   3:我们再看php调用。
  $result = get_filter();
    if ($result === false)
    {
      如果返回结果为空,那么就进行ajax结果筛选
     $filter['invoice_no']   = empty($_REQUEST['invoice_no']) ? '' : trim($_REQUEST['invoice_no']);
        if ($_REQUEST['is_ajax'] == 1)
        {
            $filter['order_sn'] = json_str_iconv($filter['order_sn']);
        }
        $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'cid' : trim($_REQUEST['sort_by']);
        $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);
         $sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('change') .
               " WHERE 1 " . $where;
        $filter['record_count'] = $GLOBALS['db']->getOne($sql);
        $filter = page_and_size($filter);
        /* 获活动数据 */
        $sql = "SELECT * ".
               " FROM " . $GLOBALS['ecs']->table('change') .
               " WHERE 1 " . $where .
               " ORDER by $filter[sort_by] $filter[sort_order] LIMIT ". $filter['start'] .", " . $filter['page_size'];
        $filter['keywords'] = stripslashes($filter['keywords']);
        set_filter($filter, $sql);
      
   }else{
        $sql    = $result['sql'];
        $filter = $result['filter'];
}
    4:最后将查询结果返回
   $arr = array('res' => $row, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
    return $arr;
   我们在来分析下,res是返回的所有数据,filter是过滤检索条件,page_count是分页数量,record_count表示查询的记录总数.
   通过以上封装,我们可以顺利的在ecshop后台使用ajax检索数据
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

用discuz搭建的论坛,后台默认地址是 域名加 admin.php,很多站长怕网站被黑客攻击,一般黑客会扫描admin文件,然后破解管理员账户登录后台,所以想修改后台的地址。直接修改 admin.php 名并放到其他文件夹里,访问后台用修改过的路径虽然能访问,但是会出错
这里所说的留言板页面,是指独立的ecshop那个留言板栏目(message.php),而不是指商品详情页面底部的用户评论区,通过这个方法,用户可以引用商品的信息,进行商品的讨论和留言。那么在这里留言板里如何才能将商品的缩略图显示出来呢,现在来说一说具体的方
做 ecshop模版 网站的时候,测试数据,发现点击订购、加入按钮都没反应,网上搜索,有些人说是修改了common.js,我将原始版本复原也没反映。后来重新安装ecshop,仔细研究发现,原来头部文件page_header.lbi被完全修改后,就点击没反应。 javascript:addToCa
ecshop 最高管理员登陆后台设置一个商品对应每个会员的价格,比如 普通vip 会员为 100元,黄金VIP为 80 元,没有登陆的普通会员则为 110元等,当每个等级会员登陆之后会显示自己所对应的价格,这样的修改对于用户体验很好,也是电商中不可缺少的一个功能,下
AB 模板王 为您整理,在Ecshop商品列表页显示每个商品的品牌的修改方法 1、首先修改 category.php 文件 将 $sql = SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, . 修
ecshop 默认的是不支持免登录就可以进行购物的,但免登录进行购物又是一个需求,刚建立起来的独立商城并没有京东或淘宝哪么高大上,一些消费者并不愿意去注意一个 小的独立商城网店,所以有时候为了省时间就直接进行免登录购物了,这个在 ecshop 后台是可以