我试过搜索,但没有看到这个问题的答案。这是一个简单的表格:
<form action="" method="post">
<input type="hidden" name="test" value="1">
<input type="submit">
</form>
我将该代码放入test.html
并浏览到:
/test.html?test=test
提交表单后,变量test
仍在URL中。我认为提交的表单会消除GET参数,但事实并非如此。
所有浏览器都会出现此行为,或者这是FireFox特有的内容吗?
答案 0 :(得分:3)
带有method="get"
的表单会覆盖任何现有的GET参数。但是,带method="post"
的表单会保留它们。
如果您想手动删除它们,请尝试action="<?=$_SERVER['PHP_SELF']?>"
(或针对PHP 5.3及以下版本:action="<?php echo $_SERVER['PHP_SELF'] ?>"
)
答案 1 :(得分:3)
“POST”和“GET”参数在PHP中非常用词。无论请求的类型如何,URL都可以包含查询参数。 POST请求可以包含请求正文数据。 URL查询参数最终在PHP $_GET
中,$_POST
中POST请求的URL编码正文数据。在PHP“$_GET
”命名法之外,确实没有“GET参数”这样的东西。
没有指定操作的表单会提交到当前的网址,包括任何网址查询参数。
希望现在更有意义。