使用DAO设计模式和Ajax技术实现数据库表user增删改查
DAO设计模式是一种用于管理数据库操作的设计模式,它将数据库操作封装在一个独立的数据访问对象中,使得数据库操作与业务逻辑分离。通过使用DAO设计模式,可以更好地组织和管理数据库操作的代码。
下面是一个使用DAO设计模式和ajax技术实现数据库表user的添加、删除、修改和查询的示例代码:
- HTML页面代码:
<!DOCTYPE html>
<html>
<head>
<title>User Management</title>
<script src='https://code.jquery.com/jquery-3.5.1.min.js'></script>
<script src='script.js'></script>
</head>
<body>
<h1>User Management</h1>
<form id='userForm'>
<input type='hidden' id='userId' />
Name: <input type='text' id='name' /><br/>
Age: <input type='text' id='age' /><br/>
<button type='submit'>Save</button>
</form>
<br/>
<table id='userTable'>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Action</th>
</tr>
</thead>
<tbody></tbody>
</table>
</body>
</html>
- JavaScript代码(script.js):
$(document).ready(function() {
// 页面加载完成后,获取用户列表
getUserList();
// 提交表单
$('#userForm').submit(function(e) {
e.preventDefault();
saveUser();
});
});
// 获取用户列表
function getUserList() {
$.ajax({
url: 'user.php',
type: 'GET',
dataType: 'json',
success: function(data) {
displayUserList(data);
}
});
}
// 显示用户列表
function displayUserList(data) {
var tableBody = $('#userTable tbody');
tableBody.empty();
$.each(data, function(index, user) {
var row = $('<tr>');
row.append($('<td>').text(user.id));
row.append($('<td>').text(user.name));
row.append($('<td>').text(user.age));
row.append($('<td>').html('<button onclick="editUser(' + user.id + ')">Edit</button> <button onclick="deleteUser(' + user.id + ')">Delete</button>'));
tableBody.append(row);
});
}
// 添加或编辑用户
function saveUser() {
var id = $('#userId').val();
var name = $('#name').val();
var age = $('#age').val();
var data = {
id: id,
name: name,
age: age
};
$.ajax({
url: 'user.php',
type: 'POST',
data: data,
success: function() {
getUserList();
resetForm();
}
});
}
// 编辑用户
function editUser(id) {
$.ajax({
url: 'user.php?id=' + id,
type: 'GET',
dataType: 'json',
success: function(data) {
$('#userId').val(data.id);
$('#name').val(data.name);
$('#age').val(data.age);
}
});
}
// 删除用户
function deleteUser(id) {
$.ajax({
url: 'user.php?id=' + id,
type: 'DELETE',
success: function() {
getUserList();
}
});
}
// 重置表单
function resetForm() {
$('#userId').val('');
$('#name').val('');
$('#age').val('');
}
- PHP代码(user.php):
<?php
// 数据库连接信息
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test';
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
// 获取用户列表
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
$sql = 'SELECT * FROM user';
$result = $conn->query($sql);
$users = array();
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$users[] = $row;
}
}
echo json_encode($users);
}
// 添加或编辑用户
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$id = $_POST['id'];
$name = $_POST['name'];
$age = $_POST['age'];
if (empty($id)) {
$sql = 'INSERT INTO user (name, age) VALUES ('$name', '$age')';
} else {
$sql = 'UPDATE user SET name='$name', age='$age' WHERE id=$id';
}
if ($conn->query($sql) === TRUE) {
echo 'success';
} else {
echo 'Error: ' . $sql . '<br>' . $conn->error;
}
}
// 删除用户
if ($_SERVER['REQUEST_METHOD'] == 'DELETE') {
$id = $_GET['id'];
$sql = 'DELETE FROM user WHERE id=$id';
if ($conn->query($sql) === TRUE) {
echo 'success';
} else {
echo 'Error: ' . $sql . '<br>' . $conn->error;
}
}
// 关闭数据库连接
$conn->close();
?>
在以上代码中,我们使用了jQuery的ajax函数来发送异步请求,与PHP后端进行交互。PHP后端根据请求的方法和参数进行相应的数据库操作,并返回结果给前端。前端根据返回的数据更新页面内容。
使用以上代码,你可以在浏览器中打开HTML页面,进行用户的添加、删除、修改和查询操作。
原文地址: https://www.cveoy.top/t/topic/Qog 著作权归作者所有。请勿转载和采集!