如何为PHP+MySQL商品筛选系统添加多维度排序下拉框功能
第一步:修改index.php文件
首先调整表单提交方式,新增排序选择框:
<div class="filters row"> <div class="col-md-12"> <!-- 把method从post改为get,和product.php的参数接收逻辑保持一致,action按你实际入口调整 --> <form id="filter-form" class="form" action='index.php' method="get"> <span>Filter Products</span> <select name="cats" class="form-control form-control-sm"> <option value="">Filter by Category</option> <option value="eat">Eat</option> <option value="drink">Drink</option> <option value="Pants">Pants</option> <option value="Shirts">Shirts</option> </select> <input type="text" name="search" placeholder="Search" class="form-control form-control-sm" title="Search by product name or SKU" /> <span> Show </span> <select name="per-page" class="form-control form-control-sm"> <option value="3">3</option> <option value="6">6</option> <option value="9">9</option> <option value="12">12</option> </select> <!-- 新增排序选择框 --> <span> Sort by </span> <select name="sort" class="form-control form-control-sm"> <option value="">Default</option> <option value="price_low">Price: Low to High</option> <option value="price_high">Price: High to Low</option> <option value="name_asc">Name: A to Z</option> <option value="latest">Latest Released</option> </select> <input type="submit" value="Filter" class="btn btn-sm btn-secondary"/> </form> </div> </div> <div id="all-products" class="row all-products"> <?php require('resources/products.php'); ?>
第二步:修改product.php文件
在产品过滤逻辑完成后、分页处理之前,新增排序逻辑:
找到product.php中这段代码的位置:
$products = $filtered_products; } // 这里插入新增的排序逻辑 $paged_products = array_slice($products, $offset, $limit);
插入的排序逻辑代码如下:
// 排序逻辑 $sort = isset($_GET['sort']) ? $_GET['sort'] : ''; if (!empty($sort)) { usort($products, function($a, $b) use ($sort) { switch ($sort) { case 'price_low': return $a['price'] - $b['price']; case 'price_high': return $b['price'] - $a['price']; case 'name_asc': return strcmp($a['title'], $b['title']); case 'latest': // 假设用自增id判断最新,id越大发布越晚,如果表中有create_time字段可以换成对应的字段 return $b['id'] - $a['id']; default: return 0; } }); }
内容的提问来源于stack exchange,提问作者school stuff
相关产品推荐
相关产品推荐

