我有这个PHP / HTML,用POST表单包装。如何仅将单击删除按钮的行的ID传递回服务器?
<table>
<tr>
<th>File Path</th>
<th>Expiration</th>
</tr>
<?php
$result = mysql_query ($list_query);
$row_count = mysql_numrows ($result);
for ($i = 0; $i < $row_count; $i++) {
$id = mysql_result ($result, $i, "id");
$path = mysql_result ($result, $i, "path");
$expiration = mysql_result ($result, $i, "expires");
?>
<tr>
<td width="60%">
<?php echo $path; ?>
</td>
<td>
<?php echo $expiration; ?>
</td>
<td>
<input type="submit" value="Delete Expiration" />
</td>
</tr>
<?php
}
?>
</table>
答案 0 :(得分:6)
在表单中使用隐藏字段。
<input type="hidden" name="id" value="<?php echo $id ?>">
您也应该为每个新行开始一个新表单。
for ($i = 0; $i < $row_count; $i++) {
$id = mysql_result ($result, $i, "id");
$path = mysql_result ($result, $i, "path");
$expiration = mysql_result ($result, $i, "expires");
?>
<tr>
<td width="60%">
<?php echo $path; ?>
</td>
<td>
<?php echo $expiration; ?>
</td>
<td>
<form method="POST" action="?">
<input type="hidden" name="id" value="<?php echo $id ?>">
<input type="submit" value="Delete Expiration" />
</form>
</td>
</tr>
<?php
}
?>
答案 1 :(得分:2)
我同意Extrakun提出的解决方案,但是,为了完整性,我想指出使用JavaScript和DOM的选项。您可以使用JQuery,如此问题中所述:
答案 2 :(得分:0)
您应该在行中的某处设置一个包含id的隐藏字段,并在每行的表单中包装隐藏字段和提交按钮:
<form>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<input type="submit" value="Delete" />
</form>
点击后,使用$ _POST ['id']获取ID。
格尔茨,
XpertEase