gpt4 book ai didi

php - 从表中删除用户

转载 作者:行者123 更新时间:2023-11-30 00:15:11 24 4
gpt4 key购买 nike

我有一个表格,列出了网站上的所有用户:

<?php $pt_table = '<form method="post" action="" onsubmit="return confirm(\'Are you sure you want to delete user?\');"><table id="patients">
<tr>
<th>Username</th>
<th>User id</th>
<th>Email</th>
<th>Added on</th>
<th>Group</th>
<th></th>
</tr>';


$x=1;
foreach ($users as $patient) {

$pt_table .= '<tr'; if ($x % 2 == 0) {$pt_table .=' class="alt"';}
$pt_table .= '>';
$pt_table .= '<td><a href="profile.php?username='.$patient['username'].'">'.$patient['username'].'</a></td>
<td>'.$patient['id'].'</td>
<td>'.$patient['email'].'</td>
<td>'.$patient['joined'].'</td>
<td>';
if ($patient['group'] == 1) { $pt_table .= 'User';} elseif ($patient['group'] == 2) { $pt_table .= 'Administrator';}
$pt_table .= '</td><td><input id="gobutton" type="submit" name="submit" value="Remove" style="margin-top: 5px; margin-left: 5px" /></td>';
$pt_table .= '<input type="hidden" name="user_id" value="'.$patient['id'].'"';

$pt_table .='</td></tr>';

$x++;
}
$pt_table .='</table></form>';
echo '<br><br/><br/><br/>';
echo $pt_table;

我想在用户单击表上的相应按钮时删除特定记录,从而删除该记录。这是删除代码:

if (isset($_POST['submit']) && isset($_POST['user_id']) && $_POST['user_id'] !== '') {


if ($admin->deleteuser($_POST['user_id']) == true) {
header('Location:add-user.php?deleted');
} else {
$msg->add('e', 'The was a problem deleting user.');
}
}

问题是表中的最后一条记录被删除,而不是用户按下删除按钮删除的记录。请问我做错了什么?

最佳答案

您的表单将每个用户全部包含在一个表单中。并在每个属性上重新使用 name 属性。因此,当表单发布到服务器时,它可能只使用具有该 name 的最后一个表单元素(在本例中为 user_id)。

基本上,您的 HTML 简化版看起来像这样:

<form>
<table>
<tr>
<td>
<input ... />
<input ... />
</td>
</tr>
<tr>
<td>
<input ... />
<input ... />
</td>
</tr>
<!-- and so on... ->
</table>
</form>

为了区分每个用户,您可以将他们包装在他们自己的单独表单中。更像这样:

<table>
<tr>
<td>
<form>
<input ... />
<input ... />
</form>
</td>
</tr>
<tr>
<td>
<form>
<input ... />
<input ... />
</form>
</td>
</tr>
<!-- and so on... ->
</table>

这样一来,每个表单就只有一个带有 user_id 的隐藏输入和一个提交按钮。您可以通过修改所发出的 HTML 来实现此目的,以便 form 标记位于循环内。请记住,整个 form 可能应该位于单个 td 中,我不认为将 form 标签放在 tr 周围 本身就是有效的 HTML。

关于php - 从表中删除用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23706596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com