我正在尝试通过页面传递ID。 我正在使用表格,每行中都有一个带有ID的按钮,但是当我通过它时,它仅将最后一个ID输入到数据库中,却看不到我在点击什么
第一页传递的代码
<div class="featuredImageBox" runat="server">
<img class="center-fit" src="~/@Model.Owner/min/@Model.Featured1A" data-src="~/@Model.Owner/@Model.HomeFeatured1A"/>
</div>
另一页的代码
<?php foreach($prob_list as $row){?>
<tr>
<th>
<label><?php echo $row['name']; ?></label>
</th>
<td>
<label><?php echo $row['extno']; ?></label>
</td>
<td>
<label><?php echo $row['department']; ?></label>
</td>
<td>
<label><?php echo $row['problem']; ?></label>
<label><?php echo $row['program']; ?></label>
<label><?php echo $row['another'];?></label>
</td>
<td>
<input type="hidden" name="status" id="status" value="<?php echo $row['ID']; ?>"/>
<input type="submit" class="done" name="done" value="Done">
</td>
</tr>
答案 0 :(得分:0)
我认为问题在于,您需要循环执行此操作,因此您一次又一次地使用name="status"
设置隐藏字段。当您发送表格时,您将发送设置的最后一个值。在这种情况下,您必须使用数组符号。
<input type="hidden" name="status[<?php echo $row['ID']; ?>]" id="status" value="<?php echo $row['ID']; ?>"/>
然后,您将构建一个状态字段数组。您可以在PHP代码中阅读。
foreach($_POST['status'] as $key => $value) {
// something like this
}
答案 1 :(得分:0)
我想您的所有<form>
行都只有一个prob
标签,这就是为什么浏览器使用名称为input
的最后一个status
的原因将包含您在数据库中插入的最后一个ID的值,并将其发送到PHP应用程序。
您需要做的是用表单标签包装最后<td></td>
个输入。
<?php foreach($prob_list as $row) { ?>
<tr>
<th>
<label><?= $row['name'] ?></label>
</th>
<td>
<label><?= $row['extno'] ?></label>
</td>
<td>
<label><?= $row['department'] ?></label>
</td>
<td>
<label><?= $row['problem'] ?></label>
<label><?=$row['program'] ?></label>
<label><?= $row['another'] ?></label>
</td>
<td>
<form action="your_action" method="your_method">
<input type="hidden" name="status" id="status" value="<?= $row['ID'] ?>"/>
<input type="submit" class="done" name="done" value="Done">
</form>
</td>
</tr>
<?php } ?>