我有一个数据表,其中包含网站上的实体列表。该列表有“动作”按钮,如“编辑”,“删除”和“启用/禁用”(它是一个切换按钮,但这在这里无关紧要)。编辑按钮实际上是一个假装是按钮的链接,所以让我们打折,但是删除和启用按钮需要传回一个完全需要删除或启用的脚本。理想情况下,这需要在一个“动作”参数下。有一个<form>
包含整个表格。
在下面的代码中,我非常详细地解释了我的实际代码,并且我通常使用PHP框架和模板引擎。但是,出于这些示例的目的,我将尽可能使用普通的PHP。 (这个问题与PHP没有直接关系,它是非常多的HTML和表格。)
以下是我的数据表中一行的示例:
<tr>
<td><?php echo $item->name; ?></td>
<td>
<a href="edit.php?id=<?php echo $item->id; ?>" class="btn btn-default">Edit</a>
<button type="submit" name="delete" value="<?php echo $item->id; ?>"></button>
</td>
</tr>
所以现在我需要添加一个启用按钮:
<tr>
<td><?php echo $item->name; ?></td>
<td>
<a href="edit.php?id=<?php echo $item->id; ?>">Edit</a>
<button type="submit" name="enable" value="<?php echo $item->id; ?>"></button>
<button type="submit" name="delete" value="<?php echo $item->id; ?>"></button>
</td>
</tr>
此时,处理此问题的脚本看起来最终会有很多if (isset($_POST['delete']))
类型的行,因为我需要为每个操作添加一个新行,所以我想我会发送作为参数的动作也是如此。现在我有两个选择:
<button type="submit" name="action[enable]" value="<?php echo $item->id; ?>"></button>
<button type="submit" name="action[delete]" value="<?php echo $item->id; ?>"></button>
或
<button type="submit" name="action[<?php echo $item->id; ?>]" value="enable"></button>
<button type="submit" name="action[<?php echo $item->id; ?>]" value="delete"></button>
条件:
action=delete, id=3
,但当然如果有更好的方法那么请告诉我所以,我的问题: