如何实现ecshop中商品分类页分类搜索的功能

如何实现ecshop中商品分类页分类搜索的功能,第1张

需要修改的文件category.php

goods_list.lbi common.js

1、读出当前分类的所有下级分类

$chlidren_category =

$GLOBALS['db']->getALl('SELECT cat_id,cat_name FROM

' . $GLOBALS['ecs']->table('category') ." WHERE

parent_id = '$cat_id' and is_show=1")

$category_id_all =

array('all'=>array('cat_id'

=>$cat_id,

'cat_name'

=>'all category',

'show'

=>1

)

)

foreach($chlidren_category as $key=>$value)

{

if($value['cat_id']==$cat_id)

{

$chlidren_category[$key]['show']=1$category_id_all['show']=0continue

}

else $chlidren_category[$key]['show']=0

}

$category_list = array_merge($category_id_all,

$chlidren_category)

$smarty->assign('category_list_all',

$category_list)

2、修改goods_list.lbi文件, <form

method="GET" name="listform">下面加入循环出分类的模板代码

<!--{foreach from=$category_list_all

item=cat_list}-->

<a href="javascript:"

onClick="javascript:category_change({$cat_list.cat_id})">{$cat_list.cat_name}</a

<!--{/foreach}-->

3、common.js中加入js脚本

function category_change(cat_id)

{

document.getElementByIdx_x('category_id').value = cat_id

setTimeout(doSubmit, 0)

function

doSubmit() {document.forms['listform'].submit()}

}

在按钮位置添加下面的代码

<input type="button" value="新的查询" onclick="newCheck()"/>

script里增加下面这个函数

function newCheck(){

var keyword = document.getElementById('keyword').value

if(keyword==''){

alert('请输入单位/个人名称')

return false

}else{

document.user_serach.submit()

}

}

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表示查询的记录总数.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11407223.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存