基于 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"> Apartment</option>
<option value="villa"> Villa</option>
<option value="all-commercial">All Commercial</option>
<option value="office"> Office</option>
<option value="retail"> 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' : ''; ?>> Apartment</option>
<option value="villa" <?php echo $term == 'villa' ? 'selected' : ''; ?>> Villa</option>
<option value="all-commercial" <?php echo $term == 'all-commercial' ? 'selected' : ''; ?>>All Commercial</option>
<option value="office" <?php echo $term == 'office' ? 'selected' : ''; ?>> Office</option>
<option value="retail" <?php echo $term == 'retail' ? 'selected' : ''; ?>> 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?的主要内容,如果未能解决你的问题,请参考以下文章
多个 <select> 下拉列表作为 sql 参数 | PHP