我正在尝试设置一个具有下拉菜单的网站,每个选项都会引导您访问数据库的一个子集。例如,俄亥俄州或密歇根州等地的人。我有一些人想要被拉,无论状态如何,并且有一个名为all_states的类别。我已经看到了如何向URL添加变量(例如:http://www.website.com/page.htm?OH=1)我还看到了设置两个变量的示例(例如:http://www.website.com/page.htm?OH=1&all_states=1)。但是我如何设置它以便只需要满足一个条件,实际上是OR而不是AND?我希望能够设置调用数据的链接,例如,对于那些俄亥俄州是真的(OH = 1)或者all_states为真(all_states = 1),因为有些人没有指定特定的状态,但会帮助所有因此我需要能够在一个URL命令中提取每个列表。
答案 0 :(得分:0)
URL中的&
符号只是变量之间的分隔符,并不意味着需要任何内容。您的PHP(或解析GET变量的任何内容)应该检查它。
例如,您可以通过编写类似(在PHP中)的内容来解析它:
if(isset($_GET['all_states'])){
// do something for all states //
}else{
$states = ["OH", "CA", ...];
// recurse through state abbreviations //
foreach($state in $states){
if(isset($_GET[$state])){
// do something for individual state //
}
}
}
在Javascript中:
$(document).ready(function(e){
var allStates = getParameterByName('all_states');
if(isset(allStates)){
// do something for all states //
}else{
// check & do something for individual states //
}
});
function isset(obj){
return typeof(obj) !== 'undefined' && obj != null && obj !== '';
}
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
虽然我个人建议使用状态变量,如下所示:
个别州的州变量:http://whatever.com/something.php?state=OH
所有国家的州变量:http://whatever.com/something.php?state=all
然后只需检查PHP中的状态变量是什么。