回答:
以下のようSO上で述べました:
ブラウザはそれで大丈夫です。ただし、アプリケーションライブラリがそれを解析する方法は異なる場合があります。
プログラムは、同じ名前のアイテムをグループ化することになっています。HTML仕様はこれを明示的に述べていませんが、チェックボックスのドキュメントで暗黙的に述べられています:
「フォーム内の複数のチェックボックスが同じコントロール名を共有する場合があります。たとえば、チェックボックスを使用すると、ユーザーは同じプロパティの複数の値を選択できます。」
余談ですが、PHPではフィールド名にPHPのarry構文を使用すると、同じ名前のフォームフィールドを持つことができます。
<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>
これにより、ブラウザは、PHPがこれらのフィールドの配列に入力するために使用する構文でフォームフィールドを送信します$_REQUEST['email']
。PHPを使用する場合は、これを使用することをお勧めします。
HTML5
非規範的なセクション4.10.1.3サーバーと通信するようにフォームを構成すると、フォームが有効であることが明示されます。
複数のコントロールに同じ名前を付けることができます。たとえば、ここではすべてのチェックボックスに同じ名前を付け、サーバーはその名前で送信された値を確認することで、チェックボックスがどのチェックボックスにチェックされたかを区別します。ラジオボタンと同様に、値属性で一意の値も与えられます。
これの規範的なバージョンは、どこでも禁止されていないことであり、フォーム送信アルゴリズムは、どの要求を生成する必要があるかを正確に示します。
application/x-www-form-urlencoded
「フォームデータセット」をループして複数のhttps://www.w3.org/TR/html5/forms.html#url-encoded-form-dataを吐き出すようなエンコーディングkey=val