我有以下2个表格:
-- members --
|member_ID|nick_name|
---------------------
| 1 | Jack |
---------------------
| 2 | Jill |
---------------------
-- shares --
|member_ID|nick_name|percent_owner|
-----------------------------------
| 1 | Jack | 75 |
-----------------------------------
| 2 | Jill | 25 |
-----------------------------------
我的第一个php页面将查询成员表并创建一个html表就好了。在html表中,我添加了一个空白文本框来手动输入百分比所有者值。这就是该表的样子:
<table>
<?php foreach ($members as $members) : ?>
<tr>
<td><?php echo $members['member_ID']; ?></td>
<td><?php echo $members['nick_name']; ?></td>
<td><input type="text" name="percent_owner[]" value="" size="3"></td>
</tr>
<?php endforeach; ?>
</table>
现在,我要做的是将新信息发送到另一个页面,以创建另一个包含member_ID,nick_name和百分比所有者的html表。这就是我的问题所在。这是第二个html表:
<table>
<?php foreach ($members as $member) : ?>
<?php foreach ($_POST['percent_owner'] as $value) : ?>
<tr>
<td><?php echo $member['member_ID']; ?></td>
<td><?php echo $member['nick_name']; ?></td>
<td><?php echo $value; ?></td>
</tr>
<?php endforeach; ?>
<?php endforeach; ?>
</table>
我不相信我正在正确地组织我的foreach陈述。要么我只得到每一行中的第一个percent_owner值,要么我在每一行中得到两个值,但是无法正确。一旦我知道了这一点,我就会将它全部输入到共享表中,但稍后会出现。我需要先解决这个问题。
谢谢你!答案 0 :(得分:3)
你需要在第一个代码块中为迭代变量使用一个不同的变量,一个不是数组。
foreach ($members as $member)
制作:
<table>
<?php foreach ($members as $member) : ?>
<tr>
<td><?php echo $member['member_ID']; ?></td>
<td><?php echo $member['nick_name']; ?></td>
<td><input type="text" name="percent_owner[]" value="" size="3"></td>
</tr>
<?php endforeach; ?>
</table>
<强>更新强>
您正在尝试遍历每行的%,您想要的是该行中的%。
<table>
<?php
$i = 0;
$percents = expload(',', $_POST['percent_owner']);
foreach ($members as $member) : ?>
<tr>
<td><?php echo $member['member_ID']; ?></td>
<td><?php echo $member['nick_name']; ?></td>
<td><?php echo $percents[$i++]; ?></td>
</tr>
<?php endforeach; ?>
</table>
您可能希望将第一个块中的输入名称更改为“percent_owner”。另外,请使用这段代码,因为它未经测试。