PHP 3下拉菜单由foreach循环填充3次

时间:2018-02-06 07:56:18

标签: php html

我来自德国,我的英语并不完美,但我会尽力解释我所遇到的问题。

我有一个html表,我在foreach循环中创建了每个tablerow和他的tabledata。我在表格中有两个下拉菜单,每个都有另一个foreach循环。我的问题是:我提交表单后尝试回显下拉菜单中的所有值,我只能正确显示productnumber和productname,但下拉菜单中的值未正确显示。

这里是代码:

foreach ($produktdaten['products'] as $output){
echo '<tr>';
        echo '<td><input type="hidden" name="opproduktnummer" value="' . $output['id'] . '">' . $output['id'] . '</td>';
        echo '<td><input type="hidden" name="opproduktname" value="' . $output['name'] . '">' . $output['name'] . '</td>';
        echo '<td><select name="opproduktccp">';
        foreach ($op_options['ccp'] as $opccp) {
          echo '<option>'.$opccp.'</option>';
        }
        echo '</select></td>';
        echo '<td><select name="opproduktlevel">';
          foreach ($levelarray["mlevels"] as $key){
            echo "<option>" . $key . "</option>";
          }
        echo '</select></td>';
        echo '<td><input type="submit" name="save_data" class="btn btn-outline-primary" value="Speichern"></td>';
        echo '</tr>';
        }
            if( isset( $_POST['save_data'] ) ){
      echo $keys;
      echo "<br>";
      echo $values;
}

在我的第一个数组$ produktdaten [&#39; products&#39;]我有三个不同价值的产品。我只需要produktid和他的名字。这就是我选择$ output [&#39; id&#39;]和$ output [&#39; name&#39;]的原因。这是有效的。 THIS IS THE TABLE right now

每个下拉菜单都正确显示每行的选项。 正如我所说,当我提交表格时,我需要抓住用户选择的每个选项。但我得到的结果只是每行下拉菜单中的最后一个选项。 THIS IS an EXAMPLE WHEN WE CHOOSE something

当我提交时,我得到这个 - &gt; enter image description here

我需要为每个productid和他的名字提供用户在下拉菜单中选择的正确值。请帮助我,因为我现在尝试不同的方法超过两周。我是PHP的新手(3个月使用它)。 我希望有人可以帮助我,因为我从这个论坛学到了很多东西。来自德国的Greez。

1 个答案:

答案 0 :(得分:0)

您将获得最新值,因为您使用的每个选项都具有相同的名称。

IE中。你有三个&#34; opproduktccp&#34;和#34; opproduktlevel&#34;中的三个,所以表格发送的最新价值&#34;覆盖&#34;以前的那些。

如果您想单独使用每个值,您必须:
A)以不同的方式命名选择,即&#34; opproduktlevel1&#34;,&#34; opproduktlevel2&#34;等。

B)使它们成为一个数组,即。 &#34; opproduktlevel []&#34;或者,最好将它们编号为&#34; opproduktlevel [1]&#34;等等

B)如果您有不同数量的可能产品,您可以使用解决方案(例如,您不知道您是否有2或4个)。

使用B,您可以获取数组并循环遍历每个数组。 更好的是,如果你对它们进行了编号,你可以通过opproduktlevel进行操作并获取键值并将其用作opproduktccp的键,反之亦然。

因此,假设您的$ output [&#39; id&#39;]是唯一的,您的代码可能是这样的:

{{1}}

表单提交后,您应该有两个包含用户选择的数组,您可以循环使用。