<input type="text" name="a">
がフォームに表示される回数を数える方法はありますか?
私が試してみました
$count = count($_POST['a']) ;
しかし、これは入力の名前に関係なくすべての入力をカウントします...
<input type="text" name="a">
がフォームに表示される回数を数える方法はありますか?
私が試してみました
$count = count($_POST['a']) ;
しかし、これは入力の名前に関係なくすべての入力をカウントします...
<input>
HTML フォームには、同じname
属性を持つ複数の要素を含めることはできません。
次のマークアップを使用する場合:
<input type="text" name="a">
<input type="text" name="a">
その後、値がオーバーライドされ、配列の最後の<input>
要素の値を受け取るだけです。$_POST
複数の要素から入力を取得する場合は<input>
、代わりに次のマークアップを使用します。
<input type="text" name="a[]">
<input type="text" name="a[]">
<input type="text" name="a[]">
この場合、各要素は個別に考慮され、配列<input>
内の値を取得できます。$_POST
要素の出現回数をカウントするには<input>
、次を使用できます。
echo count($_POST['a']);
次のコードを検討してください。
<?php
if (isset($_POST['submit'])) {
print_r($_POST);
echo count($_POST['a']);
}
?>
<form action="" method="post">
<input type="text" name="a[]">
<input type="text" name="a[]">
<input type="text" name="a[]">
<input type="submit" name="submit">
</form>
これにより、属性が に等しい<input>
要素の数が正しく表示されます。name
a
答えは簡単です。一度だけ表示されます。name 属性は、名前に角括弧を追加しない限り、すべてのテキスト入力フィールドで一意でなければなりません[]
。そうしないと、フォームの最後の値が他の値を上書きします。