我的网站上有一个基于POST的搜索功能。但是,现在,我希望能够提供搜索某些关键字的链接,但这当然不可能,因为表单不处理GET请求。有办法解决这个问题吗?
答案 0 :(得分:4)
使用超级全局
$_REQUEST
答案 1 :(得分:3)
将表单的方法设置为GET
<form action="/search" method="GET">
如果服务器上的搜索应用允许通过get进行搜索,则此功能将起作用。请注意,无论如何你应该使用GET进行搜索。 POST是进行修改和发布数据。您正在“获取”搜索结果,因此请使用GET。
答案 2 :(得分:0)
您可以使用javascript从链接发布表单。如何做到这一点的一个例子就在这里:
http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
答案 3 :(得分:0)
我会考虑将您的表单更改为使用GET进行操作。
使用GET作为搜索机制是合适的,因为GET方法用于幂等的请求。即你可以反复执行它们而不用担心改变状态。 POST的语义是您发布数据并执行更改(无论在此方案中是否发生了真正的)
答案 4 :(得分:0)
<input type="text" id="searchcat"></input>
<form method="POST">
...
<input type="submit" onclick="this.form.action='/search?cat=' + document.getElementById('searchcat').value"></input>
</form>
也许这个解决方案会有所帮助?当然,“搜索”控件似乎是一种组合框。和onclick处理程序更好地用作JS函数,而不是内联...
实际上,当您单击此提交时 - 浏览器会生成所有HTTP标头,从表单数据中收集请求正文,然后使用url发送请求,其中包含GET变量。这样,您将在搜索服务器端处理程序中同时拥有GET和POST数据。
通过在控件上处理onChange来更好地更改GET变量。但是,如果没有IDE,这个例子会更长,更难以阅读。