我来自德国,我的英语并不完美,但我会尽力解释我所遇到的问题。
我有一个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。
答案 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}}
表单提交后,您应该有两个包含用户选择的数组,您可以循环使用。