【发布时间】:2019-03-21 04:25:24
【问题描述】:
我有一个 somefile.php 和 someotherfile.js,代码如下
javascript file
function deleteSelectedRow() {
return (confirm('Are you sure you want to delete this record))
};
<!DOCTYPE html>
<html lang=" en">
<head>
<title> Title </title>
</head>
<body>
<h1>Select the user to delete from the list below </h1>
<form action="" method="POST">
<?php
if(require_once('../SQL/mySQL_connect.php'))
{
$query = "SELECT id, FirstName, LastName, PhoneNumber FROM participants ORDER BY id ASC";
$userDetails = @mysqli_query($mysqli, $query);
}
else
{
echo "Couldn't connect to database";
echo mysqli_error($mysqli);
}
// mysqli_close($mysqli);
?>
<br><br><br>
<table name="userDetailsTable" id="userDetailsTable" align="left" cellspacing="7" cellpadding="8">
<tr>
<td align="center"><b>S No</b></td>
<td align="center"><b>Id</b></td>
<td align="center"><b>Rank</b></td>
<td align="center"><b>First Name</b></td>
<td align="center"><b>Last Name</b></td>
</tr>
<?php
for($i = 1; $i <= mysqli_num_rows($userDetails); $i++)
// while($row=mysqli_fetch_array($userDetails))
{
$row=mysqli_fetch_array($userDetails);
echo '<tr>
<td align ="center" >'. $i .'</td>
<td align ="center" >' . $row['id'] . '</td>
<td align ="center">' . $row['Rank'] . '</td>
<td align ="center">' . $row['FirstName'] . '</td>
<td align ="center">' . $row['LastName'] . '</td>
<td align ="center"> <input type = submit name="delete" value="delete" onclick="return deleteSelectedRow();" ></input></td>';
echo '</tr>';
}
?>
</table>
</form>
<?php
if(isset($_POST['delete']))
{
require_once('../SQL/mySQL_connect.php');
$query="DELETE FROM `participants` WHERE `participants`.`id` = ".$_POST['IDNumber']."";
$response = @mysqli_query($mysqli, $query);
if($response)
{
echo "Deleted from Database Successfully";
}
else
{
echo "Couldn't Delete from database";
echo'<br>';
echo mysqli_error($mysqli);
}
mysqli_close($mysqli);
}
?>
</body>
这段代码的作用如下
- 连接到数据库并检索用户详细信息
- 创建一个表格并打印出其中的用户详细信息
- 用户点击任意记录前的删除按钮,确认后删除
- 显示删除成功消息
我想要做的是在显示成功消息后,上面打印的表格应该会自动更新,以便用户确认该 id 不再存在于表格中
我尝试了以下解决方案
-
在显示成功消息之前重新加载页面,以便用户看到成功消息以及更新的表(因为重新加载将重新连接到数据库并重新获取表)
我尝试使用“location.reload(true)”命令,但我无法确定该行的放置位置,以便在显示成功消息之前执行它。
非常感谢任何帮助
【问题讨论】:
-
你可以在
if($response)之后试试header("Location: " . "http://" . $_SERVER['HTTP_HOST'] . $location); -
您在打印表格后删除条目。将删除块移到 SELECT 查询之前。这应该适用于使用 location.reload();. 重新加载页面
-
您的代码容易受到SQL injection 攻击。您应该通过mysqli 或PDO 使用带有绑定参数的预处理语句。 This post 有一些很好的例子。
-
在
和
标签: javascript php html