javascript - 确认警报显示,但是当单击“取消”时,无论如何它都会执行删除查询
问题描述
我目前正在创建一个项目,它是一个课程网站,现在我正在构建用户的个人资料页面,可以选择编辑和查看用户的信息,但是我在实现删除帐户功能时遇到了问题。
单击该按钮时,将有一个删除按钮和一个弹出窗口供用户使用。问题是即使我点击取消它也会执行查询,删除用户并将我发送到索引页面,我不知道这是否是重定向的问题,或者我应该用 php 回显脚本而不是调用它来自javascript,在此先感谢您提供的任何帮助。
<?php
//selects current data of the logged user and display it
if (isset($_SESSION['id_user'])) {
$id_session = $_SESSION['id_user'];
$query = "SELECT id_user, first_name, last_name, username, email FROM users ";
$query .= "WHERE id_user = ? ";
$stmt = mysqli_stmt_init($con);
$prepare = mysqli_stmt_prepare($stmt, $query);
if (!$prepare) {
die('query failed' . mysqli_error($con));
} else {
mysqli_stmt_bind_param($stmt, "i", $id_session);
mysqli_stmt_execute($stmt);
$get_user_data = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($get_user_data)) {
$id = $row['id_user'];
$name = $row['first_name'];
$last_name = $row['last_name'];
$username = $row['username'];
$email = $row['email'];
?>
<div class="profile-table">
<table>
<tr>
<th>ID</th>
<td><?php echo $id; ?></td>
</tr>
<tr>
<th>Name</th>
<td><?php echo $name; ?></td>
</tr>
<tr>
<th>Last name</th>
<td><?php echo $last_name; ?></td>
</tr>
<tr>
<th>Usernamee</th>
<td><?php echo $username; ?></td>
</tr>
<tr>
<th>Email</th>
<td><?php echo $email; ?></td>
</tr>
</table>
</div>
<?php } } } ?>
<div class="cont-btn">
<div>
<a class="active-btn" href="profile.php?source=edit&id_u=<?php echo $id; ?>">Edit profile</a>
</div>
<div>
<a class="active-btn del-btn" onClick="deleteConfirm()" href="profile.php?delete=<?php echo $id; ?>">delete account</a>
</div>
</div>
<?php
if(isset($_GET['delete'])) {
$id_delete = $_GET['delete'];
$query = "DELETE FROM users WHERE id_user = ? ";
$stmt = mysqli_stmt_init($conexion);
$prepare = mysqli_stmt_prepare($stmt, $query);
if(!$prepare) {
die('Query failed' . mysqli_error($con));
} else {
mysqli_stmt_bind_param($stmt, "i", $id_delete);
mysqli_stmt_execute($stmt);
logout();
}
/* unset everything from session and relocates back to the index page
function logout()
{
session_start();
unset($_SESSION['id_user']);
unset($_SESSION['name']);
unset($_SESSION['lastname']);
unset($_SESSION['username']);
unset($_SESSION['email']);
unset($_SESSION['role']);
session_destroy();
header("Location: ../index.php");
} */
}
?>
<script>
function deleteConfirm() {
confirm('Are you sure you want to delete your account?');
}
</script>
`
解决方案
推荐阅读
- linux - 这可以在没有“bc”的情况下重写吗?环境中的大多数主机上都没有安装 bc
- spring-integration - (Spring 集成)如何使用 Reactive 消费者处理消息?
- react-native - 从 React Native 中的内容提供者获取数据
- html - 当用户离线时,使我们的网站可用的技术是什么?
- jquery - 根据值选择下拉项不起作用
- python-3.x - 在 Python 脚本中执行 Bash 命令
- php - 在不同页面上显示复选框输出
- python - 在子字符串上加入熊猫数据框
- javascript - 在对象内的数组内追加 - Watson Assistant
- reactjs - 在 React SPA 中将两个子域组合在一起