作为
Adding Values to a Query String in a URL的延续,我有一个搜索框,它将为当前URL添加其他参数.
http://example.com/?s=original+new+arguments&fq=category
表单代码如下所示:
其中search_result.php只是我创建的一个新页面,用于使用新URL解析提交和重定向.
如何将原始URL传递给search_result.php,以便我可以操作URL?
编辑#1:我添加了一个隐藏的输入:
我的输出只是将参数添加到提交页面(search_result.php)而不是预期的查询页面.
if (isset($_GET['send'])){
$searchField = urlencode($_GET['SearchField']);
$location = $_GET['current_url'];
$location = preg_replace($location, '/([?&]s=)([^&]+)/', '$1$2+'.$searchField);
header('Location: '.$location);
}
?>
我要么把它们弄错了,要么弄错了,要么两者都错了!
编辑#2:输出网址如下:
http://example.com/wp-content/themes/child_theme/search_result.php?SearchField=newTerm¤t_url=www.example.com%2F%3Fs%3DoldTerm%26searchsubmit%3D&send=Search
编辑#3
我回应了输出网址,这是正确的.我摆脱了preg_match只是为了看看我在处理表单时是否可以获得相同的URL.有趣的是,我找不到一个页面.我决定添加http://标题并且它有效:
header('Location: http://'.$location);
因此,我认为这里唯一不对的是preg_replace.