当我使用 <form action="code.php?id=1" method="post"></form>
时,表单 ID 在 URL 中传递。但是,当我通过将“POST”替换为“GET”来编写相同的代码时,id 不会传递给 URL。
为什么?
最佳答案
当您提交 GET 表单时,表单中的值将附加到 action
URL,作为 ?
之后的“查询字符串”。在此类表单的 action
属性中指定现有查询字符串会产生歧义。浏览器不会合并这两个查询字符串,它们只是丢弃旧的查询字符串并根据表单构建新的查询字符串。
使用 POST 表单,没有歧义:来自表单的数据与 URL 分开发送,因此不需要覆盖查询字符串。
但是,最好不要混合使用这两种参数,因此解决方案总是将您的额外参数作为隐藏字段包含在内,这样它就可以同时用于 GET 和 POST 形式:
<input type="hidden" name="id" value="1">
关于php - 为什么我必须使用 POST 而不是 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063707/