📜  在php中使用ajax删除记录而不刷新页面(1)

📅  最后修改于: 2023-12-03 15:23:25.454000             🧑  作者: Mango

在PHP中使用AJAX删除记录而不刷新页面

在Web开发中,我们通常使用Ajax来实现无需刷新页面的交互方式。本篇文章将介绍如何使用Ajax在PHP中删除记录而不刷新页面。以下为步骤介绍:

步骤一:创建HTML页面

首先,我们需要创建一个HTML页面,用于展示数据和发送删除请求。在该页面上,我们将创建一个表格,用于显示数据库中的记录。同时,我们还将在每个记录行中添加一个“删除”按钮,用于触发删除请求。

以下为示例代码:

<!DOCTYPE html>
<html>
<head>
	<title>使用AJAX删除记录</title>
	<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
	<script>
		$(document).ready(function(){
			// 给"删除"按钮绑定点击事件
			$(".delete-btn").click(function(){
				// 获取要删除的记录ID
				var id = $(this).attr("data-id");
				// 发送删除请求
				$.ajax({
					url: "delete.php", // 后台处理页面
					method: "POST", // 请求方法
					data: {id: id}, // 传递的数据
					success: function(response){
						// 在前端页面上删除该记录行
						$("#row" + id).remove();
					}
				});
			});
		});
	</script>
</head>
<body>
	<table>
		<thead>
			<tr>
				<th>ID</th>
				<th>姓名</th>
				<th>邮箱</th>
				<th>操作</th>
			</tr>
		</thead>
		<tbody>
			<?php
				// 遍历数据库中的记录,并将其显示在表格中
				foreach($records as $record){
					echo "<tr id='row" . $record['id'] . "'>";
					echo "<td>" . $record['id'] . "</td>";
					echo "<td>" . $record['name'] . "</td>";
					echo "<td>" . $record['email'] . "</td>";
					echo "<td><button class='delete-btn' data-id='" . $record['id'] . "'>删除</button></td>";
					echo "</tr>";
				}
			?>
		</tbody>
	</table>
</body>
</html>

在上述代码中,我们使用了jQuery库的ajax方法来发送删除请求。当用户点击某个“删除”按钮时,我们获取该记录的ID并将其传递给后台处理页面。在后台处理完删除操作后,我们在前端页面上删除该记录行。

步骤二:创建后台处理页面

为了处理从前端页面发送过来的删除请求,我们需要创建一个后台处理页面。该页面将接收前端页面传递的ID参数,并根据该ID从数据库中删除对应的记录。

以下为示例代码:

<?php
	// 连接数据库
	$conn = mysqli_connect("localhost", "root", "password", "test");
	
	if(!$conn){
		die("连接数据库失败:" . mysqli_connect_error());
	}
	
	// 获取要删除的记录ID
	$id = $_POST['id'];
	
	// 从数据库中删除该记录
	$sql = "DELETE FROM users WHERE id = '$id'";
	
	if(mysqli_query($conn, $sql)){
		// 返回删除成功的提示信息
		echo "记录删除成功!";
	}
	else{
		// 返回删除失败的提示信息
		echo "记录删除失败:" . mysqli_error($conn);
	}
	
	// 关闭数据库连接
	mysqli_close($conn);
?>

在上述代码中,我们使用了PHP的mysqli扩展来连接数据库,并使用POST方法接收前端页面传递过来的ID参数。接着,我们根据ID从数据库中删除对应的记录。最后,我们通过echo语句返回删除结果信息。

步骤三:测试效果

完成上述步骤后,我们就可以在浏览器中测试该功能的效果了。当我们点击某个“删除”按钮时,页面将会向后台处理页面发送删除请求并展示相应的删除结果信息。最重要的是,这一切都不会刷新页面,从而提供了更好的用户体验。

结论

通过以上步骤,我们已经成功地在PHP中使用Ajax实现了无需刷新页面的删除记录功能。在实际开发中,我们可以根据类似的步骤来开发其他类型的交互功能。