将表单提交从 GET 更改为 POST PHP

Change form submission from GET to POST PHP

我在大网站上工作,里面有汽车过滤功能。我将解释表单过滤的工作原理:

因此用户选择过滤器选项、车号等并按下 go,这会向服务器发出 GET 请求 (php) 我已将每个变量从 $_GET 更改为 $_POST 并更改了表单提交方法,问题是当表单 return 的项目数量很大时,它可能有超过 2 页,所以当用户单击第二页或第三页时,所有这些代码所做的就是向请求添加页码,如下所示:www.example.com/GET_REQUEST_VARIABLES -> www.example.com/pagenumber&GET_REQUEST_VARIABLES.这样服务器 return 的第二页项目等等。

但是当我发送 post 请求时,它没有保存在 url 中,所以服务器不知道 return,

你能帮我解决这个问题吗?

如果你问问题我可以解释得更好我不知道我在这里是否解释清楚

您使用 POST 而不是 GET 有什么原因吗?在这种情况下使用 GET 对 SEO 更友好。由于您没有在表单提交中发送敏感数据,我看不出有理由使用 POST。使用 GET 的另一个好处是您可以直接 link 搜索结果。 (例如,如果我搜索本田飞度,并想给我妻子看,我可以直接 link 到该页面)

(查看 HERE 以了解 POST 和 GET 之间差异的要点解释。

要回答您的其他问题,POST 不使用 URL。只有 GET 可以,因此如果您需要将表单数据序列化到 URL,您将需要使用 GET。由于您将表单提交方法更改为 POST,因此您还需要更改服务器端逻辑以适应。如果不知道您使用的是什么服务器端技术,我就没有多大用处。假设您正在使用 PHP,您可以开始 here

如果您不喜欢 MAN 页面,只需将 PHP 中的所有 $_GET['fieldName'] 调用更改为 $_POST['fieldName']

您始终可以 POST 第一页,并使用 GET ONLY 作为页码。在表单中,您只需执行此操作

    <form method="post" action="www.foo.com/search?page=1">

然后您可以将 POSTed 变量存储到 $_SESSION 超全局变量中。繁荣。 POSTed 分页。使用 PHP

即时渲染它会很容易
$nextPageURL = 'www.foo.com/search?page=' . $_GET['page'] + 1;
if($_GET['page'] !== '0'){
    $lastPageURL = 'www.foo.com/search?page=' . $_GET['page'] - 1;
}