0

有没有办法计算<input type="text" name="a">表单中出现的次数?

我努力了

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

但这会计算所有输入,而不管输入的名称如何...

4

3 回答 3

2

HTML 表单不应包含多个<input>具有相同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

如果您将输入名称命名为数组 a

<input type="text" name="a[]">
<input type="text" name="a[]">
<input type="text" name="a[]">

然后你会得到计数器

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

输出:3

否则计数器 1

于 2013-10-09T17:29:00.603 回答
0

答案很简单,它只会出现一次。name 属性对于所有文本输入字段必须是唯一的,除非您将方括号附加[]到名称。否则表格中的最后一个将覆盖其他的值。

于 2013-10-09T17:22:15.873 回答