我有一个表填充了数据库中的数据,我希望每个特定用户旁边都有一个按钮来删除该用户。但我该怎么做?
以下是代码:
<?php
include '../includes/db_connect.php';
$sql = "SELECT * FROM `users`";
$result = mysql_query($sql, $connection) or die ("Failed to excecute the query $sql on $connection");
?>
<table border=1>
<tr>
<th>
Access lvl
</th>
<th>
Username
</th>
<th>
Email
</th>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
echo "</td><td>";
echo $row['access'];
echo "</td><td>";
echo $row['username'];
echo "</td><td>";
echo $row['email'];
echo "</td></tr>";
}
echo "</table>";
?>
答案 0 :(得分:2)
我经常这样做,并使用jQuery。我使用以下内容:
HTML:
<table>
....
<tr>
<td><span class="delete">Delete me!</span></td>
</tr>
</table>
jQuery的:
$(document).on("click", ".delete", function(event)
{
var sData = "?id=" + $(this).data("id");
$.ajax({
url: "pages/delete_script.php",
type: "POST",
data: sData,
success: function(sResult)
{
// Process the data you got back from the delete script
// For example removing the row if successfully deleted:
if(sResult == "OK")
{
$(this).closest("tr").remove();
}
},
statusCode:
{
404: function()
{
alert("page not found");
}
}
});
});
on()
用于动态元素(我在该页面上使用AJAX做所有事情)。然后我将需要发送的数据以正确的格式发送并执行AJAX请求。在PHP文件中可以是:
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['id'])
{
mysql_query(
sprintf('DELETE FROM `table` WHERE `id` = %d', $_POST['id'])
);
}
}
当然,建议您使用更多检查以确保删除正确的检查。
答案 1 :(得分:0)
让按钮重定向到以下网址:example.com/user.php?delete = [id]
用你的$ row ['id']填充[id]。现在,当您捕获参数$ _GET ['delete']时,您将获得一个id。现在你可以把它放在MYSQL中的DELETE函数中。
注意:
答案 2 :(得分:0)
我会把它移到一个AJAX函数,通过onClick或data-id =“”并使用jquery $('element')将变量传递给JavaScript函数.data('id');收集id并将其发送到另一个静态php文件。
如前所述,在将任何用户数据提交到SQL之前,您需要检查并清理已传递给文件的数据,如前所述:
这对用户体验感觉更好,并且还消除了蜘蛛触发操作的一些风险。如果您的安全性不高,人们仍然可以破解它,但它会使其变得更难,如果您向SQL添加状态列而不是删除行,只需更改其状态,您就可以轻松地将数据带入如果你被黑了,那就回来了。