Я не знаю, как справиться с этой ситуацией, я программист-новичок, у меня есть страница, которая показывает вам все доступные участки, где вы можете выгрузить конкретный элемент из этого участка.
Это foreach, который распечатывает:
$lotto, $totalelotto, $data и запросить qtyvalue для выгрузки из $lotto (ввод также может быть NULL)
foreach ($dataslotto as $data) {
$totalelotto = totlotto($database, $data['lotto']);
$lotto = $data["lotto"];
$data = $data["data"];
echo "<tr>";
echo "<td>".$lotto."</td>";
echo "<input type=\"hidden\" value=\"".$lotto."\" name=\"array[]\" />";
echo "<td>".$totalelotto."</td>";
echo "<input type=\"hidden\" value=\"".$totalelotto."\" name=\"array[]\" />";
echo "<td>".$data."</td>";
echo "<input type=\"hidden\" value=\"".$data."\" name=\"array[]\" />";
echo "<td><input type=\"text\" class=\"form-control\" placeholder=\"Qta.\" required name=\"qtyvalue\"></td>";
echo "</tr>";
}
Я не знаю, как установить name = "" полей ввода (потому что количество полей может измениться, если их много), и я не знаю, как отправить данные $_POST в виде массива, а затем для каждой группы $lotto, $totalelotto, $data, $qtyvalue, где установить $qtyvalue сделать еще один запрос.
Я не использовал обычный код, я знаю, что это плохо выглядит, но это просто для того, чтобы дать вам представление.
$_POST[''formarray];
foreach ( /* values recieved in each <tr> inside formarray where $_POST['qtyvalue'] is not empty */ ){
#EXECUTE THIS
}
Спасибо за помощь!!
И извините за мои плохие навыки программирования.
Я не знал, что таким образом он автоматически заполняет массив, поэтому после публикации, если у меня есть $ _POST ['lotto'], $ _ POST ['totalelotto'] ... верно?
Да, каждая из этих переменных $ _POST будет массивом, элементы с одинаковым индексом будут принадлежать вместе (представляют одну строку вашей таблицы).
А как можно присвоить ключ 0 массива $ _POST ['lotto'] переменной $ lotto? Например, Array ([0] => abc123 [1] => qwe321 [2] => ee3dd) присвоить $ lotto0 abc123, $ lotto1 qwe321






$_POST - это пара ассоциативных / ключевых значений, ключом является то, что задано в качестве имени входов.
поэтому, если вы хотите отправить пользователям ввод username в бэкэнд-скрипт PHP
Вы устанавливаете значение и его имя
<input type = "text" name = "username" value = "User123">
затем, чтобы получить имя пользователя, вы можете сделать
print_r($_POST["username"]);
чтобы распечатать значение.
Итак, вы спрашиваете, как вы перебираете каждый из них в $ _POST, это довольно просто, вы можете выполнить цикл foreach по всему массиву $ _POST.
foreach($_POST as $key => $value)
{
//check something has been entered for the current value we are iterating over
if ($value != null)
{
print_r($key . " value is : " . $value);
}
}
это будет перебирать каждый элемент в массиве $ _POST с ключом, установленным на любое имя элемента DOM.
Не забывайте, что массив $ _POST - это просто массив, вы можете сделать
var_dump($_POST);
и посмотреть все, что было отправлено в запросе POST.
Вы можете использовать имена массивов для ваших входов. Допустим, у вас есть такая строка в таблице:
<tr>
<td><input ... name = "lotto[]"></td>
<td><input ... name = "totalelotto[]"></td>
<td><input ... name = "data[]"></td>
<td><input ... name = "qtyvalue[]"></td>
</tr>
Тогда вы получите массивы $_POST['lotto'], $_POST['totalelotto'] и т.д., каждый с одинаковым количеством элементов, и элементы с одинаковым индексом, принадлежащие одной строке таблицы. Затем вы можете обработать эти элементы следующим образом
foreach ($_POST['lotto'] as $i=>$lotto) {
if ($_POST['qtyvalue'][$i] > 0) {
...
}
}
Имена ваших входов, вероятно, должны быть такими, как
lotto[],totalelotto[]иdata[], вместоarray[]для всех из них (это тоже сработает, но тогда вам придется обрабатывать элементы группами по 3). Я предполагаю, что вы знаете о Функция PHP, которая автоматически создает массивы, если вы так называете свои входы, или это то, о чем вы спрашиваете?