2013-10-09 6 views
0

Есть ли способ подсчитать, сколько раз появляется <input type="text" name="a"> в форме?Подсчитайте количество раз, когда конкретный вход присутствует в форме

Я попытался

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

, но это рассчитывает все входы независимо имя входа ...

+1

Вы говорите, что в вашей форме у вас есть более одного типа '? Отправьте форму пожалуйста. – j08691

+1

... также не забудьте использовать скобки: '' при работе с несколькими входами с тем же именем. – insertusernamehere

+0

да ... у меня есть 4 из этих ... –

ответ

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> элементов с атрибутом name, равным a.

+0

спасибо o мудрый один :) –

+0

и как я могу использовать элементы в массиве? –

+0

@ionvoinescu: Я думал, это было довольно очевидно. Например: 'echo $ _POST ['a'] [0];' :) –

0

Ответ прост, он просто будет появляться один раз. Атрибут name ДОЛЖЕН быть уникальным для всех полей ввода текста, если вы не добавите квадратные скобки [] к названию. В противном случае последний в форме будет перезаписывать значение из других.

0

, если вы назвали имя вводится в качестве массива а

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

, то вы получите счетчик, как

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

Выход: 3

в противном случае счетчик 1

Смежные вопросы