我有一个名为account.php的页面它显示mysql表中的用户数据。(在这个问题中,我将以邮件系统为例)
账户页面中有以下代码:
while($stmt->fetch()){
echo "<tr>
<td>
<form action='action.php' method='POST'>
<input type='hidden' name='mail_id' value='$mail_id'>
Mail:$mail_subject
<input type='submit' name='reply value='reply'>
<input type='submit' name='delete' value='delete'>
<form>
</td>
</tr> ";
}
其中在action.php中,我有这样的代码:
if(isset($_POST['reply'])){
echo "$_POST['mail_id']";
}
if(isset($_POST['delete'])){
echo "$_POST['mail_id']";
}
在渲染的html。最后一个mail_id是101当我点击mail_id'35'上的回复按钮时,返回的post值是101。
我的问题是,当我点击mail_id‘35’行中的回复按钮而不是‘101’时,我如何获得mail_id’35’
首先,您应该将表单标记从while循环中移开。然后你可以给你的回复和删除按钮不同的名称,如reply[$mail_id]
和delete[$mail_id]
。所以你可以在后台检查哪个被点击了
echo "<form action='action.php' method='POST'>";
while($stmt->fetch()){
echo"<tr>
<td>
<input type='hidden' name='mail_id' value='$mail_id'>
Mail:$mail_subject
<input type='submit' name='reply[$mail_id]' value='reply'>
<input type='submit' name='delete[$mail_id]' value='delete'>
</td>
</tr> ";
}
echo "<form>";
您可以使用以下代码在后端获得$mail_id
$mail_reply_id = (!empty($_POST['reply'])) ? key($_POST['reply']) : 0;
$mail_delete_id = (!empty($_POST['delete'])) ? key($_POST['delete']) : 0;