Вывод значений текстовых полей, созданных fia для цикла в PHP
У меня есть следующая форма: (обратите внимание, я знаю, что в моем коде нет проверки)
<form name="frmsplitter" method="POST" enctype="multipart/form-data" action = 'step2.php'>
<table>
<thead>
<tr>
<select style="width: 80%" name="cobbulkamount">
<option>please select a bulk item</option>
<option value= 100>100</option>
<option value= 200>200</option>
</select>
</tr>
</thead>
<tbody>
<tr>
<td><label>Select number of items you want the bulk amount to be splited : </label><input type="text" name="txtnumberofitems" value="<?php if (isset($_POST['btnsplitItem'])){echo $_POST['txtnumberofitems'];}?>" /></td>
<td></td>
</tr>
<tr>
<td><input type="submit" value="submit" name="btnsplitItem" /></td>
</tr>
</tbody>
</table>
</form>`
Форма отправляется на следующую страницу:
<?php
if (!empty($_POST['txtnumberofitems'])) {
$bulkvalue = 200;
$numberofitems = $_POST['txtnumberofitems'];
echo "<form name='frmsplitter' method='POST' action = 'step3.php'>";
echo "amount to be splited <input type='text' name='txtamountof' value =$numberofitems> ";
for ($index = 0; $index < $numberofitems; $index++) {
echo "<table>".
"<tr>
<td>|amount: <input type='text' name='txtamount.$index'/></td>
<td>|Reference 2: <input type='text' name='txtref.$index'/></td>
<td>|DCIP:<select name='cobdcip'.$index>
<option>DR</option>
<option>CR</option>
</select></td>
</tr>
</table>";
}
echo "<br>";
echo "<input type='submit' name='btnpopulate' />";
echo "</form>";
}
?>`
Форма отправляется на следующую страницу:
if (isset($_POST['btnpopulate'])) {
$number = (int)$_POST['txtamountof'];
for ($index = 0; $index < $number; $index++) {
if (!empty($_POST['txtamount'.$index]))
{
echo 'nooooooooooo';
}
else {
echo $_POST['txtamount'.$index];
echo '<br>';
}
}
} `
Моя проблема в том, что я получаю Уведомление: неопределенный индекс: txtamount0 и Уведомление: неопределенный индекс: txtamount1
1 ответ
Решение
Название вашего ввода: txtamount.1
не txtamount1
, так что вы должны получить к нему доступ таким образом:
for ($index = 0; $index < $number; $index++) {
if (array_key_exists('txtamount.'.$index, $_POST)) {
[...]
Или измените свой HTML:
<td>|amount: <input type='text' name='txtamount$index'/></td>