Bootstrap 是一个流行的前端框架,用于快速开发响应式和移动优先的网站。它提供了丰富的 UI 组件和样式,可以简化网页设计和开发过程。MySQL 是一种关系型数据库管理系统,广泛用于存储和管理网站或应用程序的数据。
假设我们有一个简单的用户管理系统,使用 Bootstrap 和 MySQL 来实现用户的增删改功能。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
role ENUM('admin', 'user') DEFAULT 'user'
);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>User Management</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<h1>User Management</h1>
<form id="userForm">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" required>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" required>
</div>
<div class="form-group">
<label for="role">Role</label>
<select class="form-control" id="role">
<option value="admin">Admin</option>
<option value="user">User</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Add User</button>
</form>
<table class="table mt-4">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Actions</th>
</tr>
</thead>
<tbody id="userTable">
<!-- Users will be displayed here -->
</tbody>
</table>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js"></script>
<script>
$(document).ready(function() {
// Load users from the database
loadUsers();
// Handle form submission
$('#userForm').submit(function(event) {
event.preventDefault();
const name = $('#name').val();
const email = $('#email').val();
const role = $('#role').val();
$.ajax({
url: '/api/users',
method: 'POST',
data: { name, email, role },
success: function(response) {
loadUsers();
$('#userForm')[0].reset();
},
error: function(error) {
console.error(error);
}
});
});
// Handle delete action
$('#userTable').on('click', '.delete-btn', function() {
const userId = $(this).data('id');
$.ajax({
url: `/api/users/${userId}`,
method: 'DELETE',
success: function(response) {
loadUsers();
},
error: function(error) {
console.error(error);
}
});
});
// Handle edit action
$('#userTable').on('click', '.edit-btn', function() {
const userId = $(this).data('id');
const name = $(this).closest('tr').find('td:nth-child(2)').text();
const email = $(this).closest('tr').find('td:nth-child(3)').text();
const role = $(this).closest('tr').find('td:nth-child(4)').text();
$('#name').val(name);
$('#email').val(email);
$('#role').val(role);
$('#userForm').attr('action', `/api/users/${userId}`);
$('#userForm').attr('method', 'PUT');
});
});
function loadUsers() {
$.ajax({
url: '/api/users',
method: 'GET',
success: function(response) {
let html = '';
response.forEach(user => {
html += `
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.email}</td>
<td>${user.role}</td>
<td>
<button class="btn btn-sm btn-warning edit-btn" data-id="${user.id}">Edit</button>
<button class="btn btn-sm btn-danger delete-btn" data-id="${user.id}">Delete</button>
</td>
</tr>
`;
});
$('#userTable').html(html);
},
error: function(error) {
console.error(error);
}
});
}
</script>
</body>
</html>
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'testdb'
});
db.connect(err => {
if (err) throw err;
console.log('Connected to MySQL database');
});
// Add user
app.post('/api/users', (req, res) => {
const { name, email, role } = req.body;
const sql = 'INSERT INTO users (name, email, role) VALUES (?, ?, ?)';
db.query(sql, [name, email, role], (err, result) => {
if (err) return res.status(500).send(err);
res.status(201).send(result);
});
});
// Get all users
app.get('/api/users', (req, res) => {
const sql = 'SELECT * FROM users';
db.query(sql, (err, result) => {
if (err) return res.status(500).send(err);
res.status(200).send(result);
});
});
// Delete user
app.delete('/api/users/:id', (req, res) => {
const { id } = req.params;
const sql = 'DELETE FROM users WHERE id = ?';
db.query(sql, [id], (err, result) => {
if (err) return res.status(500).send(err);
res.status(204).send();
});
});
// Update user
app.put('/api/users/:id', (req, res) => {
const { id } = req.params;
const { name, email, role } = req.body;
const sql = 'UPDATE users SET name = ?, email = ?, role = ? WHERE id = ?';
db.query(sql, [name, email, role, id], (err, result) => {
if (err) return res.status(500).send(err);
res.status(200).send(result);
});
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云