在数组中形成值的发布并按键对它们进行管理

时间:2018-07-20 13:04:39

标签: php arrays foreach

我不知道如何处理这种情况,我是菜鸟编码者,我的页面显示了所有可用的批次,您可以在其中从该批次中卸载特定物品。

这是打印出来的foreach:

$lotto$totalelotto$data,并要求从$lotto中卸载qtyvalue(输入也可以为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数据作为数组发送,然后进行foreach $lotto$totalelotto$data$qtyvalue所在的一组$qtyvalue进行另一个查询。

我没有用常规代码编写它,我知道它看起来很糟糕,但这只是为了给您一个想法。

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

FORM

感谢帮助!

对不起,我的编码技能不好。

2 个答案:

答案 0 :(得分:0)

$_POST是一个关联/键值对,它的键是设置为输入名称的任何键。

因此,如果您想将用户输入username发送到后端PHP脚本

您设置了值及其名称

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

然后检索您可以执行的用户名

print_r($_POST["username"]); 

打印值。

因此,您问如何在$ _POST中循环遍历每个对象,这很简单,您可以在整个$ _POST数组中进行foreach循环。

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请求中发送的所有内容。

答案 1 :(得分:0)

您可以使用array names for your inputs。假设您的表格行如下:

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