向基于POST的脚本发送GET请求?

时间:2009-05-20 14:58:41

标签: php forms

我的网站上有一个基于POST的搜索功能。但是,现在,我希望能够提供搜索某些关键字的链接,但这当然不可能,因为表单不处理GET请求。有办法解决这个问题吗?

5 个答案:

答案 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,这个例子会更长,更难以阅读。