曹え 5811 发布于:2024-11-26 03:43:14
这是一个侧边的筛选,每一个分类可以选一个选项,最后用js遍历生成url,跳转
<!--筛选--> <div class="menu_product"> <div class="h3">查找产品</div> {screen molds="article" orderby="orders desc" as="s"} {php $get = $_GET[$S['field']]; echo $get; /} <dl id="ToPower" rel="{$s['field']}"> <dt>{$s['fieldname']}</dt> {foreach $s['list'] as $ss} <dd cid="10" field="{$filters[$s['field']]}" class="ToPower"><a href="javascript:;">{$ss['value']}</a></dd> {/foreach} </dl> {/screen} </div> <script> // 点击 a 标签时 $('.menu_product a').click(function() { var $a = $(this); var $dd = $a.closest('dd'); var $dl = $dd.closest('dl'); var rel = $dl.attr('rel'); var text = $a.text().trim(); // 如果 a 标签有 on 这个 class,则去掉 on 这个 class if ($dd.hasClass('on')) { $dd.removeClass('on'); } else { // 如果 a 标签没有 on 这个 class,则添加 on 这个 class $dd.addClass('on'); } // 构建新的 URL 参数 var params = {}; $('.menu_product a').each(function() { var $a = $(this); var $dd = $a.closest('dd'); var $dl = $dd.closest('dl'); var rel = $dl.attr('rel'); var text = $a.text().trim(); // 如果 a 标签上有 on 这个 class if ($dd.hasClass('on')) { params[rel] = text; } }); // 构建 URL 参数 var queryString = $.param(params); var newUrl = window.location.pathname + '?' + queryString; // 跳转到新的 URL window.location.href = newUrl; }); // 页面加载时根据 URL 参数设置 a 标签的 class var urlParams = new URLSearchParams(window.location.search); $('.menu_product a').each(function() { var $a = $(this); var $dd = $a.closest('dd'); var $dl = $dd.closest('dl'); var rel = $dl.attr('rel'); var text = $a.text().trim(); // 如果 URL 参数中存在对应的值 if (urlParams.get(rel) === text) { $dd.addClass('on'); } else { $dd.removeClass('on'); } }); </script>
php代码如下,遍历url中的参数,最终组合成 like 查询语句
$queryString = $_SERVER['QUERY_STRING']; if($queryString){ // 解析查询字符串为关联数组 parse_str($queryString, $params); // 初始化查询条件数组 $conditions = []; // 遍历参数并生成查询条件 foreach ($params as $key => $value) { // 使用 LIKE 查询条件 $conditions[] = "`$key` LIKE '%$value%'"; } // 将查询条件数组连接成一个字符串 $whereClause = implode(' and ', $conditions); $sql.=' and '.$whereClause; }
登录后可以留言提问!
微信扫码登录