表单提交重定向到新网址


Form submit redirect to new url

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

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

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

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

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

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

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

window.onkeypress = function(k){ 
  if(k.keyCode == 13)  {
      url = window.location.host + "/" + document.getElementsByTagName('input')[0].value + "/";
      window.location = url;
  }
}

使用 FORM "action" 属性:

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

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