【问题标题】:Dropdown selected based on URL parameter - PHP or jQuery?基于 URL 参数选择的下拉列表 - PHP 还是 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>

【问题讨论】:

    标签: php jquery forms parameters


    【解决方案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

    【讨论】:

    • 看起来比接受的答案更好,处理更多案例
    猜你喜欢
    • 2011-09-07
    • 1970-01-01
    • 2015-04-16
    • 2021-11-06
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    相关资源
    最近更新 更多