首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表单提交时传递当前URL

在表单提交时传递当前URL
EN

Stack Overflow用户
提问于 2012-02-01 19:01:05
回答 3查看 23K关注 0票数 5

作为Adding Values to a Query String in a URL的延续,我有一个搜索框,它将向当前的URL添加额外的参数。

代码语言:javascript
运行
复制
http://example.com/?s=original+new+arguments&fq=category

表单代码如下所示:

代码语言:javascript
运行
复制
<form id="FilterSearch" method="get" action="http://example.com/search_result.php">

其中,search_result.php只是我为解析提交和使用新URL重定向而创建的一个新页面。

如何将原始URL传递给search_result.php,以便操作该URL?

编辑#1:我添加了一个隐藏输入:

代码语言:javascript
运行
复制
<?php $current_url = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
<input type="hidden" name="current_url" value="<?php $current_url; ?>" />
<input name="send" id="send" type="submit" value="Search" />

我的输出只是将参数添加到提交页(search_result.php),而不是预期的查询页。

代码语言:javascript
运行
复制
<?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:Output 如下所示:

代码语言:javascript
运行
复制
http://example.com/wp-content/themes/child_theme/search_result.php?SearchField=newTerm&current_url=www.example.com%2F%3Fs%3DoldTerm%26searchsubmit%3D&send=Search

编辑#3我呼应了输出,它是正确的。我去掉了preg_match,只是为了看看在处理表单时是否可以得到相同的URL。有趣的是,我找到了一页。我决定将http://添加到头中,它起了作用:

代码语言:javascript
运行
复制
header('Location: http://'.$location);

因此,我认为这里唯一的错误是preg_replace。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-01 19:07:22

我想你在找隐藏的信息。

就像这样:

代码语言:javascript
运行
复制
<input type="hidden" name="current_url" value="(Current URL here)" />

然后访问它,就像访问任何其他$_GET或$_POST参数一样。

编辑以响应编辑:

请您在这行之后echo $location; die;

代码语言:javascript
运行
复制
$location =  $_GET['current_url'];

让我知道输出是什么?这将告诉我们它是被错误地传递了还是被错误地处理了。

票数 10
EN

Stack Overflow用户

发布于 2012-02-01 19:40:59

只需在$_SERVER['HTTP_REFERER']中使用search_result.php即可。另一种选择是使用隐藏输入,但我会选择第一个。

票数 2
EN

Stack Overflow用户

发布于 2017-07-19 06:00:51

获得当前URl的更好方法是创建一个隐藏输入,并在服务器端传递当前URL和catch。即

代码语言:javascript
运行
复制
<input type="hidden" name="cur_url" value="(your Current URL here)" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9101592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档