web-dev-qa-db-ja.com

HTML入力配列

<input name="foo[]" ... >

私は前にこれらを使用しましたが、それが何と呼ばれ、それのための仕様があるかどうか疑問に思っていますか?

HTML 4.01 Spec でそれを見つけることができず、さまざまなGoogleの結果は、多くのPHPフォームデータの処理の例とともに "配列"と呼ぶだけです。 。

43
gak

コメントにはいくつかの参照とポインタがあります PHP.netのこのページ

トルステンは言う

「XHTML仕様の互換性ガイドラインのセクションC.8は、フラグメント識別子としてのname属性の使用に適用されます。DTDを確認すると、「name」属性がまだフォーム要素のCDATAとして定義されていることがわかります。」

ジェットボーイは言う

「これによれば http://www.w3.org/TR/xhtml1/#C_8 XHTML 1.0ではname属性のタイプが変更されました。つまり、XHTMLのname属性の角括弧は有効ではありません。

ともかく、執筆時点では、W3CのバリデータはXHTMLドキュメントでこれを検出しません。」

14

HTMLではなく、単なるPHPです。

[]を持つすべてのHTMLフィールドを配列に解析します。

だからあなたは持つことができます

<input type="checkbox" name="food[]" value="Apple" />
<input type="checkbox" name="food[]" value="pear" />
<input type="checkbox" name="food[]" value="banana" />

そして、送信されると、PHPは$ _POST ['food']を配列にし、次のようにその要素にアクセスできます:

echo $_POST['food'][0]; // would output first checkbox selected

または、選択したすべての値を表示するには:

foreach( $_POST['food'] as $value ) {
    print $value;
}

とにかく、特定の名前があるとは思わないでください

57
sqram

私の知る限り、HTML仕様には何もありません。これは、ブラウザーがこれらのフィールドに対して異なる処理を行うことを想定していないためです。通常どおりに送信し、PHPは他の言語と同様に配列への解析を行います。

22

それに従います...

<form action="index.php" method="POST">
<input type="number" name="array[]" value="1">
<input type="number" name="array[]" value="2">
<input type="number" name="array[]" value="3"> <!--taking array input by input name array[]-->
<input type="number" name="array[]" value="4">
<input type="submit" name="submit">
</form>
<?php
$a=$_POST['array'];
echo "Input :" .$a[3];  // Displaying Selected array Value
foreach ($a as $v) {
    print_r($v); //print all array element.
}
?>
1
Rabby shah