为什么在HTML中使用GET方法时会传递提交按钮值?

时间:2012-11-21 05:24:26

标签: html get request

我在我的网站上使用表格中的“GET”方法。由于某种原因,它将提交按钮的值传递给URL。为什么会这样?我做错了什么?

形式:

<form method="GET" action="searcht1.php">
    <input type="text" name="search"/>
    <input type="submit" name="submit">
</form>

地址:

searcht1.php?search=colin+pacelli&submit=Submit

4 个答案:

答案 0 :(得分:6)

它应该发生。如果您不想这样做,请不要在按钮上定义name属性。您可能需要value来向用户显示该按钮的用途。

此外,这个问题与PHP无关;它纯粹是关于HTML语义。

答案 1 :(得分:3)

原因是name属性在用于表单提交时使提交按钮成为“successful control”(在HTML 4.01术语中)。这会导致其中的name = value对包含在表单数据中。

请注意,在您的情况下,此数据为name= foo ,其中 foo 是与按钮相关的浏览器默认值。它可以是submit,也可以是Lähetä kysely,也可以是异国情调。您可以(通常应该)使用value属性来设置此值,因为它确定了按钮中显示的文本。通常不希望在您的英语语言上显示提交按钮,例如日语中的一些文本只是因为正在使用日语浏览器。

正如其他人所写,解决方案(如果这是一个问题)是删除name属性。但由于通常应使用value属性,因此您只需将名称name替换为属性名value即可同时进行两项更改,但您也可以将显示的单词大写:< / p>

<input type="submit" value="Submit">

答案 2 :(得分:2)

尝试从提交输入中删除名称属性

答案 3 :(得分:1)

删除按钮的名称属性.....