为什么PHP只使用' name'来解析DOM元素?标识符,而不是' id'?

时间:2016-02-02 12:59:32

标签: javascript php dom

对于表单中元素的id和名称,必须复制相同的字符串似乎有很多浪费:

<input id="foo" />            <!-- JS/CSS accept this -->
<input name="foo" />          <!-- Only PHP accepts this -->
<input id="foo" name="foo" /> <!-- Everyone's happy -->

为什么PHP不使用id标签?

4 个答案:

答案 0 :(得分:4)

  

为什么PHP不使用id标签?

那不是PHP,那是HTML。 PHP与HTML规范无关。

HTML 使用id属性,但它使用它们的目的不同于name属性。

HTML form elements通过其子值承载元素(POSTGETinput构建请求(通常为selecttextarea),等等。)。 name属性用作键,value(或选定的值等)用作值。

这将为请求中的数据创建键/值对。

  

对于表单中元素的id和名称,必须复制相同的字符串似乎有很多浪费

您不必复制它。 可以选择来复制它。但这是你的选择。任何规格/标准/惯例/等都没有规则。表明你必须或甚至应该这样做。

<input id="foo" />            <!-- JS/CSS accept this -->
<!--- incorrect.  JS/CSS can also target name attributes if necessary. -->

<input name="foo" />          <!-- Only PHP accepts this -->
<!--- incorrect.  This isn't PHP, this is HTML.  PHP isn't involved here at all. -->

<input id="foo" name="foo" /> <!-- Everyone's happy -->
<!--- if that's the markup you choose to define, sure. -->

答案 1 :(得分:0)

  

为什么PHP不使用id标签?

因为这是将表单提交到指定服务器端的标准集。我会说,当您需要name序列化表单元素时,ID最有可能与js / css一起使用。

答案 2 :(得分:0)

Id属性用于DOM操作。 http://www.w3schools.com/tags/att_global_id.asp

当使用表单name发送表单时。 http://www.w3schools.com/tags/att_input_name.asp

这些是不同的目的。 您也可以在JS中使用name属性,但会返回元素数组:

// plain JS
document.getElementsByName("foo");

// jQuery example
$('[name="foo"]')

答案 3 :(得分:0)

因为在web中需要3个类型标识符,例如每个唯一用途

1)class:用于设计并在dom(jquery)中选择多个标签 2)id:用于访问dom中的某些特定元素,并为一个字段设计 3)名称:用于传递单个和多个数据和数组

如果您可以通过id传递值,那么如何发送复选框值和多个选择标记值???