我正在尝试为我正在开发的在线商店开发产品过滤器。我的意思是http://www.riverisland.com/men/just-arrived
。我已设法获取JavaScript以在单击大小时填充URL但未能在取消选中时从URL中删除值。
我的主要问题是这个。假设我的网址为:
http://127.0.0.1/shop/dresses/?s=1&s=2&s=3
如何让我的PHP从URL中提取值? 如何使用任何示例查询格式化SQL查询以搜索从URL获取的值?
答案 0 :(得分:0)
为了从$_GET
和其他超级全球受益,您必须遵守Variables From External Sources中解释的规则。由于您选择了多个具有相同名称的参数,并且它们未包含正确配对的方括号,因此您基本上可以自己使用。您必须重现的手动步骤包括:
从$_SERVER['QUERY_STRING']
中提取原始查询字符串,例如:
$query_string = filter_input(INPUT_SERVER, 'QUERY_STRING');
解析字符串。据我所知,没有内置函数可以做到这一点,所以我要谷歌一个好的第三方库或写一个简单的解析器与正则表达式或旧的{{1} }。
使用explode()
答案 1 :(得分:0)
这是一个更简单的解决方案。
按照@ Andrey.Popov的建议格式化您的网址http://127.0.0.1/shop/dresses/?s=1,2,3
。然后执行以下操作。
if(isset($_GET['s']) && !empty($_GET['s']))
{
$e = sanitizeFunction($_GET['s']);
$d=explode(',',$e);
}
$d
现在拥有所有$ _GET [' s']值。
这是我想出来的更简单的方法,它有效!