0

我有一个带有单个输入框的表单。当用户输入数据并按下回车键时 - 我需要将页面重定向到 currentpage.com/userinput/ 其中 currentpage.com 是我们所在的页面,而 userinput 是输入到文本框中的数据。

我知道如何使用 _GET 或 _POST 来实现这一点,但使用它们不是一种选择。有人可以提供解决方案吗?

echo "<form action=\"\" method =\"get\">";
echo "<input id=\"input\" type=\"text\" name=\"page\" placeholder=\"Input your data..\">";
echo "</form>";

这就是我到目前为止所拥有的

4

3 回答 3

1

如果没有更多信息,我建议使用一个事件处理程序来侦听 enter 键,然后使用输入框中的值进行简单的 javascript 重定向:

window.onkeypress = function(k){ 
  if(k.keyCode == 13)  {
      url = window.location.host + "/" + document.getElementsByTagName('input')[0].value + "/";
      window.location = url;
  }
}
于 2013-10-11T21:20:41.820 回答
1

无论您决定在客户端还是服务器端进行,最终它总是会在某个地方使用 GET 或 POST。您将如何以另一种方式交付它?;) 正如其他人所暗示的那样,您的意思是您不想在提交时联系服务器吗?你能更精确一点吗?

好的,那么在这种情况下,您需要做两件事:在您的 .htaccess 或 virtualhost RewriteRule ^/([0-9]+)$ /index.php?page=$1中,假设启用了 mod_rewrite 处理提交的页面称为 index.php。然后,您需要将重定向更改为指向 site.com/123 页面,它应该可以工作。

于 2013-10-11T21:27:22.853 回答
0

使用 FORM "action" 属性:

<form action="http://www.google.com">
    <input type="submit" value="Submit!" />
</form>

注意:由于 X-FRAME-OPTIONS,这在 JSFiddle 中不起作用。您可能已经尝试过此解决方案,但我提供它是因为您指定不能声明“方法”。像 CBroe 一样,我想知道为什么。您的数据将基于默认方法,即 GET。

于 2013-10-11T21:21:10.557 回答