我已经尝试了一段时间来解决可能是一个小问题,但我似乎无法理解它。我尝试了一些不同的方法,有些是在 SO 找到的,但还没有奏效。
问题包括:
我有一个展示室页面,在那里我展示了一些布料。每一块布上都有四个“视图”
- 男性
- 女性
- 正面
- 后退
现在,用户可以通过查看男性或女性模型来过滤它,但他们也可以通过查看两个性别的正面或背面来过滤。
我创建了我的脚本,因此它可以检测 URL 查询并显示正确的数据,但我的问题是正确“构建” URL。
初次进入页面时,四个链接是这样的:
- example.com?gender=male
- example.com?gender=female
- example.com?site=front
- example.com?site=back
这是因为它是模型中的“默认”视图(默认视图设置为性别=男性 && 站点=正面)。
但是,如果我选择查看?gender=female用户应该能够通过添加&site=back再次过滤它,因此完整的 URL 将是:example.com ?gender=female&site=back
如果我然后按链接查看gender=male它应该仍然保留 URL 参数&site=back。
到目前为止,我所做的是将参数附加到现有 URL,但这会导致 URL 字符串,例如:example.com ?gender=male&site=front&gender=female 等等……</p>
我尝试过使用parse_url函数、http_build_query($parms)方法并创建我的“自己的”函数来检查现有参数,但它不起作用。
我最近的尝试是这样的:
_setURL(‘http://example.com?gender=male’, ‘site’, ‘back’);
function _setURL($url, $key, $value) {
$separator = (parse_url($url, PHP_URL_QUERY) == NULL) ? '?' : '&';
$query = $key."=".$value;
$url .= $separator . $query;
var_dump($url); exit;
}
此函数有效,除非 $_GET 参数已经存在,因此应该替换而不是添加。
我不确定是否有一些“最佳实践”来解决这个问题,正如我所说,我已经查看了很多关于 SO 的答案,但没有一个是我的问题的答案。
我希望我已经解释了自己,否则请告诉我,我会详细说明。
任何帮助或建议将不胜感激