后端用list传递的参数,写一个前端页面用EL表达式展示遍历用户账号密码的操作列表页,可以全选或者不全选,进行删除联动ajax
时间: 2024-02-03 09:14:02 浏览: 84
实现通过EL获取用户的注册信息
首先,需要在后端定义一个包含用户账号密码的列表,并将其传递给前端页面:
```python
from flask import Flask, render_template
app = Flask(__name__)
# 定义一个用户列表,包含账号和密码
users = [{'username': 'user1', 'password': '123456'}, {'username': 'user2', 'password': '654321'}]
@app.route('/users')
def show_users():
return render_template('user_list.html', users=users)
```
接下来,在前端页面中使用 EL 表达式展示用户列表,并添加全选和删除功能:
```html
<!DOCTYPE html>
<html>
<head>
<title>User List</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h1>User List</h1>
<table>
<tr>
<th><input type="checkbox" id="select-all"></th>
<th>Username</th>
<th>Password</th>
<th>Action</th>
</tr>
<tbody>
<!-- 使用 EL 表达式展示用户列表 -->
<c:forEach var="user" items="${users}">
<tr>
<td><input type="checkbox" class="select-user" value="${user.username}"></td>
<td>${user.username}</td>
<td>${user.password}</td>
<td><button class="delete-user" data-username="${user.username}">Delete</button></td>
</tr>
</c:forEach>
</tbody>
</table>
<button id="delete-selected">Delete Selected</button>
<script>
// 全选/不全选
$('#select-all').click(function() {
$('.select-user').prop('checked', $(this).prop('checked'));
});
// 删除用户
$('.delete-user').click(function() {
var username = $(this).data('username');
$.ajax({
url: '/delete_user',
type: 'POST',
data: {'username': username},
success: function(response) {
if (response.success) {
window.location.reload();
} else {
alert(response.message);
}
},
error: function() {
alert('Error deleting user.');
}
});
});
// 删除选中的用户
$('#delete-selected').click(function() {
var selectedUsers = $('.select-user:checked').map(function() {
return $(this).val();
}).get();
if (selectedUsers.length === 0) {
alert('Please select at least one user to delete.');
return;
}
if (!confirm('Are you sure you want to delete these users?')) {
return;
}
$.ajax({
url: '/delete_users',
type: 'POST',
data: {'users': selectedUsers},
success: function(response) {
if (response.success) {
window.location.reload();
} else {
alert(response.message);
}
},
error: function() {
alert('Error deleting users.');
}
});
});
</script>
</body>
</html>
```
其中,EL 表达式使用 `${}` 包裹变量名,例如 `${users}` 表示传递给页面的用户列表。在页面中使用 `<c:forEach>` 标签遍历用户列表,并将每个用户的账号、密码、删除按钮展示出来。
添加了全选功能和删除功能。全选按钮使用 jQuery 选择器 `$('#select-all')` 获取,点击后将所有选择用户的复选框的 `checked` 属性设置为全选按钮的 `checked` 属性。删除按钮使用 jQuery 选择器 `$('.delete-user')` 获取,点击后使用 AJAX 发送 POST 请求到后端的 `/delete_user` 接口,并传递要删除的用户的账号。删除选中用户的按钮同理,首先获取选中的用户的账号,然后使用 AJAX 发送 POST 请求到后端的 `/delete_users` 接口,并传递要删除的用户的账号列表。在 AJAX 请求成功后,重新加载页面以展示更新后的用户列表。
阅读全文