更改表单的提交方式,而无需使用 JavaScript


change the way the form is submitted without using javascript

>我有一个用于在网站上搜索的表单。

<form method="get" action="example.com/search">
<input type="text" name="search"/>
<input type="submit"/>
</form>

假设我在提交时搜索了"堆栈",我希望用户被重定向到example.com/search:stack现在,当提交用户被重定向到:example.com/search?search=stack

我怎样才能实现这一点并在不支持 javascript 的设备上允许它!?

您可以设置搜索页面以将用户从/search?search=stack重定向到/search:stack

.PHP:

if(isset($_GET['search']))
{
    $search = $_GET['search'];
    header('Location: /search:'.$search);
}
else
    // no query handling
你需要重写

URL 才能做到这一点。初学者的 URL 重写

你不能。以您描述的方式提交表单,即使用 GET 方法,将表单的内容编码为查询字符串,该字符串具有以下形式:

?search=stack

请参阅 HTML5 生活标准的第 4.10.22 节或 HTML 4.01 规范的第 17.13.3 节。

更正:对不起,我没有正确理解您的问题。您确实无法更改表单的提交方式,但您可以按照您的建议在之后重定向。阿尔瓦罗·马丁内斯在他的回答中提出了一个实现这一目标的好方法。