Запись в $_POST
сама по себе является массивом, если вы спрашиваете:
for ($i = 0; $i < count($_POST['text']); ++$i) {
// do something with this post:
$_POST['text'][$i];
}
или:
foreach ($_POST['text'] as $i => $text) {
// do something with:
$text;
// Note: $text === $_POST['text'][$i]
}
Не по теме
Всегда закрывайте свои элементы:
<input type="text" name="number" id="number" />
<input type="submit" name="button_add" id="button_add" value="add" />
Вы также пренебрегали закрытием <div>
, обертывающим входы text[]
.Если вы этого не сделаете, ваш документ плохо сформирован и, хотя браузеры попытаются проанализировать документ, нет гарантии, что они сделают это так, как вы хотите.
Тип ввода по умолчанию - текст.Нет ничего плохого в том, чтобы установить для атрибута типа значение «текст», но в этом нет необходимости.
Не полагайтесь на короткие теги ;используйте полный <?php
.Не на всех хостах они будут включены, и они устарели и скоро уйдут (до PHP 5 ходили разговоры об отказе от них).
Вам не нужно явно назначать индексы массивадля ваших входных имен; пустые скобки приведет к тому, что значение будет присвоено концу массива.Кроме того, '[' и ']' не являются действительными символами для идентификаторов .
<input type="text" name="text[]" id="text_<?php echo $i; ?>" />
* Цикл for
более уместен , чем while
цикл в вашем коде.Хотя оба делают одно и то же, они имеют разные коннотации (цикл while повторяется, в то время как некоторое статическое условие выполняется при изменяющихся обстоятельствах; цикл for повторяется в последовательности).
for ($i=0; $i < $number; ++$i) {
Все вместе имеем:
<input name="number" id="number" />
<input type="submit" name="button_add" id="button_add" value="add" />
<?php for ($i=0; $i < $number; ++$i): ?>
<div align="left">
<input name="text[]" id="text_<?php echo $i; ?>" />
</div>
<?php endfor; ?>