Я хочу создать предельный входной тег с php для цикла и получить входные значения. Мой пример кода такой:
<?php
$limit = 10;
for ($i=1; $i<=$limit; $i++) { ?>
<input name="<?php echo $i ?>" type="text" /><br>
<?php } ?>
Мой код правильный? Как я могу получить входные значения?
Выглядит хорошо, но я бы использовал массив в качестве входного имени. Например:
<?php
$limit = 10;
for ($i=1; $i<=$limit; $i++) {
?>
<input name="number[<?php echo $i; ?>]" type="text" /><br>
<?php
}
?>
Таким образом, на заднем плане вы можете просто перебрать массив чисел, вот так.
foreach ($_POST['number'] as $key => $value) {
// Do stuff
}
Ваш код должен правильно отображать 10 полей ввода html с именами 1, 2, 3, … 10
Чтобы получить входные значения, оберните поля ввода в элементе формы действием, указывающим на скрипт php, в котором вы хотите прочитать значения (например, action = «myscript.php»).
(Вы должны добавить input type = «submit», чтобы иметь возможность отправить форму. Я предполагаю, что вы достаточно хорошо знаете HTML, чтобы создать простую форму.)
Сценарий, вызванный отправкой формы (например, myscript.php), теперь сможет читать значения, используя массив $ _GET. Увидеть http://php.net/manual/de/reserved.variables.get.php
Вы можете напечатать значения следующим образом:
<?php
for($i=1;$i<=10; $i++) {
echo $i . ' : '. $_GET[$i];
}
?>
Редактировать: как сказал @David Jones, было бы лучше использовать массив в качестве входного имени
Вы можете попробовать мой сценарий.
<?php
$limit = 10;
?>
<form method="post">
<?php
for ($i = 1; $i <= $limit; $i++) {
?>
<input name="anything[]" type="text" /><br>
<?php } ?>
<input type="hidden" name="op" value="sent" />
<input type="submit" value="submit" />
</form>
<?php
if (!empty($_POST["op"])) {
for ($i = 1; $i <= $limit; $i++) {
if (strlen($_POST["anything"][$i]) !== 0) {
?>
<p>The value of the <?php echo $i; ?> text field is: <?php echo $_POST["anything"][$i]; ?>
<?php
} else {
?>
<p><?php echo $i; ?> was not set.</p>
<?php
}
}
}