0

<input type="text" name="a">がフォームに表示される回数を数える方法はありますか?

私が試してみました

$count = count($_POST['a']) ;

しかし、これは入力の名前に関係なくすべての入力をカウントします...

4

3 に答える 3

2

<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>要素の数が正しく表示されます。namea

于 2013-10-09T17:30:55.637 に答える
0

答えは簡単です。一度だけ表示されます。name 属性は、名前に角括弧を追加しない限り、すべてのテキスト入力フィールドで一意でなければなりません[]。そうしないと、フォームの最後の値が他の値を上書きします。

于 2013-10-09T17:22:15.873 に答える