Я использую динамическую форму, в которой пользователь добавляет дополнительные поля ввода для определенного поля, которое он хочет, и имя каждого поля изменяется с приращением, например:
<form method="post" action="somescript.php">
<input type="text" name="textbox" />
<input type="text" name="textbox1" />
<input type="text" name="textbox2" />
<input type="text" name="textbox3" />
.... and so on
</form>
Я хочу повторить эти данные после цикла:
<?PHP
$k=$_POST['counter']; //counter value coming as post variable
for($i=1$i<=$k;$k++){
echo $_POST['textbox'.$i]; //something like this......?
}
?>
Ответьте, пожалуйста.
Вместо этого используйте обозначение массива.
<form method="post" action="somescript.php">
<input type="text" name="textbox[]" />
<input type="text" name="textbox[]" />
<input type="text" name="textbox[]" />
<input type="text" name="textbox][" />
.... and so on
</form>
Когда форма отправлена, $_POST['textbox']
затем будет массив, и вы можете зациклить его:
foreach ($_POST['textbox'] as $textbox) {
echo $textbox;
}
Я только столкнулся с этой проблемой, потому что у меня были блоки данных, которые нужно было создавать динамически и
echo $_POST["textbox$i"];
работал без конкатенации в нем. Дайте мне знать, если это плохая практика, она работает в моей ситуации. Массив не работал для меня. Извините за публикацию этого вопроса на 3 года. Я не уверен, что это плохая практика. Благодарю.