ecshop后台搜索分页的问题
以后台商品列表页面举例。
模版中商品列表被一个form表单包含,通过AJAX实时控制显示条数和顺序。如下图。
(源码位置:/admin/goods.php)
搜索虽然被单独提出,放在了goods_search.htm中(如下图),
(源码位置:/admin/templates/goods_list.htm)
但原理相同,都是通过AJAX控制listTable来实现数据筛选或排序。listTable代码如下图。
(源码位置:/admin/templates/goods_list.htm)
我们通过查看listTable所在的代码可以看到,如下图
(源码位置:/admin/js/listtable.js)
goods_list.htm通过js传过来的listTable.filter[]值都包含进了args里,args通过下图的AJAX语句又实时传回了相应的php页面( /admin/goods.php )。
(源码位置:/admin/js/listtable.js)
在goods.php中,接收到的args传值就是筛选或排序数据的依据。通过goods_list函数获取数据列表,如下图。
(源码位置:/admin/goods.php)
Goods_list函数在/admin/includes/lib_goods.php中,如下图。
可以看出,限制条件都加到了变量$where中,最后SQL查询语句中调用$where,如下图。
综上,如果改变搜索页面,首先是模版页搜索位置的form表单,然后是那一页下方的js代码的listTable相关内容,然后是有可能会需要修改listtable.js文件,最后是修改php页面里的 $where 相关的语句,从而控制数据的筛选和排序。