PHP网站定制之AJAX实现产品多条件筛选二

发布时间:2024-10-06 点击:44
ajax实现产品多条件筛选,极大的提升了用户的浏览体验,避免了因为页面加载时间多长导致用户浏览等待时间过长的情况发生。开发功能的实现效果如下图所示:
客户的要求是搜索的主类名和搜索条件都需要可以编辑,所以这里需要从后台调用数据后在页面上输出显示出来。
前端代码如下所示:
{$item['category_name']}:
{$itemv['category_name']}
接下来就是把用户勾选的条件传到后台查询到相应的数据即可,获取勾选条件的数据,这里用jq获取
前端代码如下所示:
var arr = [];
$(function(){
$('.crumb .left a.close i').off('click').on('click', function () {
if ($(this).hasclass('on')) {
$(this).removeclass('on');
$(this).find('input').removeattr('checked');
searchpro();
} else {
$(this).addclass('on');
$(this).find('input').attr('checked', 'checked');
searchpro();
}
})
})
获取到对应数据之后,调用jq方法searchpro(),把数据传到后台进行数据查询
前端代码如下所示:
function searchpro(page){
var all = $(".filter").find("input");
var arr = [];
all.each(function(){
if($(this).is(':checked')){
var id = $(this).attr('id');
arr.push(id);
}
});
var cid = arr.join(',');//arr是以&分割的字符串
if(cid==''){
var cid = 0;
}
$.ajax({
type:'post',
url: "{:u('products/index')}",
data:{'cid':cid,'page':page},
success:function(data) {
if (data.status == 1) {
$(".fadeinright").html(data.html);
$(".pagetion").show();
$(".pagetion").html(data.page);
}else{
$(".fadeinright").html(data.empty);
$(".pagetion").hide();
}
}
})
}
后台获取前端传过来的数据进行处理
if (is_ajax) {
$cid = i('cid');
$page = i('page');
$html = '';
$map['is_show']=array('eq',1);
$map['status']=array('eq',1);
if($cid!='0'){
$pid = m('keyword')->where(array('parent_id'=>$cid))->select();
if($pid){
$cid_list = array();
foreach($pid as $k=>$v){
$cid_list[] = $v['category_id'];
}
$count1=count($cid_list);
if ($count1>1) {
foreach ($cid_list as $k1 => $v1) {
if ($k1+1==$count1) {
$mapc.='find_in_set("'.$v1.'",relax_keyword)';
}else{
$mapc.='find_in_set("'.$v1.'",relax_keyword) or ';
}
}
}else{
$mapc.='find_in_set("'.$cid_list[0].'",relax_keyword)';
}
$map['_string']=$mapc;
}else{
$cid = explode(",",$cid);
$count1=count($cid);
if ($count1>1) {
foreach ($cid as $k1 => $v1) {
if ($k1+1==$count1) {
$mapc.='find_in_set("'.$v1.'",relax_keyword)';
}else{
$mapc.='find_in_set("'.$v1.'",relax_keyword) or ';
}
}
}else{
$mapc.='find_in_set("'.$cid[0].'",relax_keyword)';
}
$map['_string']=$mapc;
}
}
// print_r($map);die;
if(empty($page)){
$page=1;
}
$listrows=9;
$order = 'order_id asc,id asc';
$pagelist = 4;
$now_cool_page = $pagelist/2;
$now_cool_page_ceil = ceil($now_cool_page);
$count = m('products')->where($map)->count();
$firstrow = $listrows * ($page -1);
//分页内容
$manuals = m('products')->where($map)->order($order)->limit($firstrow . ',' . $listrows)->select();
foreach ($manuals as $key => $v) {
$v['picture'] = unserialize($v['picture']);$content_html .='
'.$v['title'].'
'.$v['title2'].'
'.$v['detail'].'
view details
';
$data['status'] = 1;
}
$maxpage = ceil($count / $listrows);
$page_html = '';
if ($manuals) {
//上一页
$up_row = $page - 1;
$page_html .= $up_row > 0 ? '': '';
for ($i=1; $i <= $pagelist ; $i++) {
if (($page-$now_cool_page) <= 0) {
$num = $i;
} elseif(($page+$now_cool_page -1) >= $maxpage) {
$num = $maxpage - $pagelist + $i;
} else {
$num = $page - $now_cool_page_ceil + $i;
}
if($num > 0 && $num != $page){
if($num <= $maxpage){
$page_html .= '' . $num . '';
}else{
break;
}
}else{
if($num > 0 && $maxpage != 1){
$page_html .= '' . $num . '';
}
}
}
//下一页
$down_row = $page + 1;
$page_html .= ($down_row <= $maxpage) ? '' : '';
}else{
$data['status'] = 0;$data['empty'] = '
no record
';
}
$data['page'] = $page_html;
$data['html'] = $content_html;
$this->ajaxreturn($data);
}


抛砖引玉:衣食住行与电商,闲扯大连的电商行业发展的几个问题
网站建设的架构是否对网站运营有影响?
具备良好营销转化功能的网站着陆页创建指南
SEOer除了更新文章,发外链还能做什么
网站提示500内部服务器错误原因及解决方法
关键词对seo优化的工作有什么帮助?
网站更新前不做好功课可能白做了
域名注册.com还是.cn这需要根据用户群体确定