在数组中形成值的值,并按键划分它们

I dont know how to manage this situation, I'm a noob coder, I have a page that shows you all available lots where you can unload a specific item from that lot.

This is the foreach that prints out:

$lotto, $totalelotto, $data, and ask for qtyvalue to unload from $lotto (input can be also 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>";

}

I dont know how to set name="" of input fields (because the number of fields can change if there are many lots) and I dont know how to send $_POST data as array, and then foreach group of $lotto, $totalelotto, $data, $qtyvalue where is set $qtyvalue do another query.

I put it in no regular code, I know it looks bad but it's just for giving you an idea.

$_POST[''formarray];
foreach ( /* values recieved in each <tr> inside formarray where $_POST['qtyvalue'] is not empty */ ){
    #EXECUTE THIS
}

FORM

Thanks for help!!

And sorry for my bad coding skills.

$_POST is an Associative/Key Value pair, it's key is whatever is set as the inputs name.

so if you wanted to send the users input username to the backend PHP script

You set the value and it's name

<input type="text" name="username" value="User123">

then to retrieve the user name you can do

print_r($_POST["username"]); 

to print the value.

So you ask how do you loop over each one in $_POST, that's pretty simple you can could a foreach loop over the entire $_POST array.

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);
     }
}

this would loop over each item in the $_POST array with key being set to whatever the DOM elements name is.

Don't forget the $_POST array is just that an array, you could do

var_dump($_POST);

and see everything that was sent in the POST request.

You can use array names for your inputs. Say you have a row of your table like this:

<tr>
  <td><input ... name="lotto[]"></td>
  <td><input ... name="totalelotto[]"></td>
  <td><input ... name="data[]"></td>
  <td><input ... name="qtyvalue[]"></td>
</tr>

Then you will get arrays $_POST['lotto'], $_POST['totalelotto'] and so on, each with the same number of elements, and elements with same index belonging to one row of the table. You could then process those elements like this

foreach ($_POST['lotto'] as $i=>$lotto) {
  if ($_POST['qtyvalue'][$i] > 0) {
     ...
  }
}