基于 URL 参数选择的下拉列表 - PHP 还是 jQuery?

Posted

技术标签:

【中文标题】基于 URL 参数选择的下拉列表 - PHP 还是 jQuery?【英文标题】:Dropdown selected based on URL parameter - PHP or jQuery? 【发布时间】:2014-06-28 19:05:53 【问题描述】:

根据 URL 参数为我的表单选择输出“已选择”的最佳方法是什么?

在我的 URL 中,我可能有这个参数 &term=retail。

我如何告诉下面的代码选择零售选项?

<select class="form-control" name="term" id="saleTerm">
        <option value="all-residential" selected>All Residential</option>
        <option value="apartment">&nbsp;&nbsp;&nbsp;Apartment</option>
        <option value="villa">&nbsp;&nbsp;&nbsp;Villa</option>
        <option value="all-commercial">All Commercial</option>
        <option value="office">&nbsp;&nbsp;&nbsp;Office</option>
        <option value="retail">&nbsp;&nbsp;&nbsp;Retail</option>
</select>

【问题讨论】:

【参考方案1】:

使用 javascript 的最简单方法:

var val = location.href.match(/[?&]term=(.*?)[$&]/)[1];   // get params from URL
$('#saleTerm').val(val);   //  assign URL param to select field

php方式参考Danijel的回答。

【讨论】:

补充一下我的问题,输入字段怎么样? ULR &acf_Area=迪拜塔市中心 您是否在询问如何将名为 (acf_Area) 的 url 参数分配给输入字段? 是的,输入文本字段 var inpVal = location.href.match(/[?&]acf_Area=(.*?)[$&]/)[1]; $('#acf_AreaSale').val(inpVal);【参考方案2】:

PHP方式:

<?php $term = !empty( $_GET['term'] ) ? $_GET['term'] : ''; ?>

<select class="form-control" name="term" id="saleTerm">
        <option value="all-residential" <?php echo $term == 'all-residential' ? 'selected' : ''; ?>>All Residential</option>
        <option value="apartment" <?php echo $term == 'apartment' ? 'selected' : ''; ?>>&nbsp;&nbsp;&nbsp;Apartment</option>
        <option value="villa" <?php echo $term == 'villa' ? 'selected' : ''; ?>>&nbsp;&nbsp;&nbsp;Villa</option>
        <option value="all-commercial" <?php echo $term == 'all-commercial' ? 'selected' : ''; ?>>All Commercial</option>
        <option value="office" <?php echo $term == 'office' ? 'selected' : ''; ?>>&nbsp;&nbsp;&nbsp;Office</option>
        <option value="retail" <?php echo $term == 'retail' ? 'selected' : ''; ?>>&nbsp;&nbsp;&nbsp;Retail</option>
</select>

【讨论】:

你使用服务器端脚本将值传递给服务器,似乎更合法 是的,但可能出于某种原因,OP 不能/不想修改任何服务器端脚本,但恕我直言,应该这样做【参考方案3】:

您可以通过这种方式使用 jquery:

var term= GetURLParameter('term');
$('#saleTerm').val(term);

这里是通用函数GetURLParameter()

function GetURLParameter(sParam)
    
        var sPageURL = window.location.search.substring(1);
        var sURLVariables = sPageURL.split('&');
        for (var i = 0; i < sURLVariables.length; i++)
        
            var sParameterName = sURLVariables[i].split('=');
            if (sParameterName[0] == sParam)
            
                return sParameterName[1];
            
        
    ​

查看更多详情HERE

【讨论】:

看起来比接受的答案更好,处理更多案例

以上是关于基于 URL 参数选择的下拉列表 - PHP 还是 jQuery?的主要内容,如果未能解决你的问题,请参考以下文章

PHP:基于下拉列表的 MySQL 值调用

多个 <select> 下拉列表作为 sql 参数 | PHP

基于 HTML 5 Geo Location 按表单选择下拉列表过滤结果

php ajax 下拉列表

Oracle PL/SQL 中基于参数的选择查询

根据第一个下拉选择填充第二个下拉列表