You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP站点中如何根据当前页面预选Bootstrap下拉菜单选项?

解决方案

步骤1:获取并验证当前页面参数

先从URL中提取page参数,结合你已有的$pagesOk数组做合法性校验,避免非法参数注入:

// 获取当前page参数,默认设为一个通用值(比如home)
$currentPage = isset($_GET['page']) ? strtolower($_GET['page']) : 'home';
// 验证参数是否在合法列表内,不合法则重置为默认值
if (!in_array($currentPage, $pagesOk)) {
    $currentPage = 'home';
}

步骤2:给Bootstrap下拉菜单设置默认选中项

将下拉菜单的选项值与$currentPage关联,匹配的选项自动添加selected属性。示例结构如下:

<select class="form-control search-category" id="searchCategory">
    <option value="cars" <?php echo ($currentPage === 'cars') ? 'selected' : ''; ?>>Cars</option>
    <option value="boats" <?php echo ($currentPage === 'boats') ? 'selected' : ''; ?>>Boats</option>
    <option value="trucks" <?php echo ($currentPage === 'trucks') ? 'selected' : ''; ?>>Trucks</option>
    <!-- 其他分类选项 -->
</select>

页面加载时,PHP会自动给匹配当前页面的选项加上选中标记,实现默认选中对应分类的效果。

步骤3:关联jQuery Autocomplete的默认分类逻辑

如果需要让搜索框默认使用当前选中的分类做检索,把下拉菜单的选中值同步到autocomplete的请求中:

$(document).ready(function() {
    // 获取页面加载时默认选中的分类值
    var defaultCategory = $('#searchCategory').val();
    
    // 初始化autocomplete
    $('#searchInput').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: 'search.php',
                data: {
                    term: request.term,
                    category: $('#searchCategory').val() // 实时获取当前选中的分类
                },
                success: function(data) {
                    response(data);
                }
            });
        },
        // 其他autocomplete配置项
    });
});

动态生成下拉菜单的适配方案

如果你的分类是从数据库动态获取的,可通过循环输出选项时添加选中判断:

<?php foreach ($categoryList as $slug => $categoryName): ?>
    <option value="<?php echo $slug; ?>" <?php echo ($currentPage === $slug) ? 'selected' : ''; ?>>
        <?php echo $categoryName; ?>
    </option>
<?php endforeach; ?>

内容的提问来源于stack exchange,提问作者Jibeji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 21:25:18