Формировать пост значений в массиве и управлять ими по ключам

Я не знаю, как справиться с этой ситуацией, я программист-новичок, у меня есть страница, которая показывает вам все доступные участки, где вы можете выгрузить конкретный элемент из этого участка.

Это 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
}

Формировать пост значений в массиве и управлять ими по ключам

Спасибо за помощь!!

И извините за мои плохие навыки программирования.

Имена ваших входов, вероятно, должны быть такими, как lotto[], totalelotto[] и data[], вместо array[] для всех из них (это тоже сработает, но тогда вам придется обрабатывать элементы группами по 3). Я предполагаю, что вы знаете о Функция PHP, которая автоматически создает массивы, если вы так называете свои входы, или это то, о чем вы спрашиваете?

Karsten Koop 20.07.2018 15:19

Я не знал, что таким образом он автоматически заполняет массив, поэтому после публикации, если у меня есть $ _POST ['lotto'], $ _ POST ['totalelotto'] ... верно?

lalo 20.07.2018 15:26

Да, каждая из этих переменных $ _POST будет массивом, элементы с одинаковым индексом будут принадлежать вместе (представляют одну строку вашей таблицы).

Karsten Koop 20.07.2018 15:28

А как можно присвоить ключ 0 массива $ _POST ['lotto'] переменной $ lotto? Например, Array ([0] => abc123 [1] => qwe321 [2] => ee3dd) присвоить $ lotto0 abc123, $ lotto1 qwe321

lalo 20.07.2018 15:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
39
2

Ответы 2

$_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) {
     ...
  }
}

Другие вопросы по теме