1

我的网站上有一个搜索表单,我想将表单中的文本传递给 URL,例如:mysite.com/search.php?q=apples(如果搜索词是 apples)。
我认为人们可以通过这种方式为他们的搜索添加书签。

我认为的一种解决方案是在 search.php 中捕获搜索词,然后重新加载到新的 URL 中。但是像这样重新加载并不是很优雅。那么我该怎么做——我的意思是,它通常是怎么做的?我需要使用 jQuery 吗?

澄清:我知道如何从 php.ini 中的 URL 获取变量。我需要的是控制用户按下SUBMIT时将打开的URL,并且该URL需要包含用户的搜索词!就像 Google 或 DuckDuckGo 一样,我输入“apples”,然后 URL 变为 ...?q=apples。但是——怎么样?!(当然,我会在 search.php 中找到它,但我知道该怎么做。)这就是我现在所拥有的:

<div id="topnav">
<form action="search.php" method="post">
<input name="searchword" type="text">
<input type="submit">
</form>

太感谢了。

4

5 回答 5

4

看完说明。您需要的是一个提交到您的 search.php 的搜索表单,例如:

<form action="search.php" method="get">
<input type="text" value="search word" name="q" />
<input type="submit" value="submit" />
</form>

这会将在名为 q 的输入中输入的任何值传递给 search.php 脚本。

于 2012-06-01T10:13:02.557 回答
1

如何使用 POST-Redirect-GET 模式?[http://en.wikipedia.org/wiki/Post/Redirect/Get] 还有http://blog.andreloker.de/post/2008/06/Post-Redirect-Get.aspx

这将允许您将 url 保留在浏览器中:

yoursite.com/search.php?q=apples

或者,您可以使用 javascript在浏览器中设置 url的location.hash以及回发后的查询信息;我怀疑这实际上是谷歌所做的。

例如,

yoursite.com/search.php#apples
于 2012-06-01T10:21:26.843 回答
1

如果您发布的 HTML 表单包含名称为“q”和值为“apples”的文本字段,则浏览器会自动创建所需的 URL。你绝对不需要 JQuery。

于 2012-06-01T10:11:48.580 回答
0

所以表单动作是search.php,字段是q,方法是Get?

如果我了解您要实现的目标,您应该能够从 html 表单中处理所有这些。

于 2012-06-01T10:12:13.757 回答
0

如果您有表格,则必须已声明表格方法POST/GET

在你身上,search.php你可以简单地这样做$_POST['name of the input field']来获取单词字符串,

如果你想在 url 中传递变量,那么你需要link通过<a href="you URL">Link </a>

于 2012-06-01T10:14:12.457 回答