帮我写一个前端界面,需求:1.div1 持续时长+input标签 +button 搜索2 div2 动态显示为div1搜索框下拉列表(需要复选框) ,当选择后自动隐藏,其数据来源为数据库类型为数组,3.div3 以table展示选中的数据
时间: 2024-10-20 20:08:16 浏览: 11
DIV+CSS简单登录界面模板
为了创建这个前端界面,我们可以使用HTML、CSS以及JavaScript,这里是一个基本的示例:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<style>
.search-container {
margin-bottom: 20px;
}
table {
width: 100%;
border-collapse: collapse;
font-family: Arial, sans-serif;
}
th, td {
padding: 8px;
text-align: left;
border-bottom: 1px solid #ddd;
}
tr:hover {background-color: #f5f5f5;}
</style>
</head>
<body>
<div id="container">
<div class="search-container" id="div1">
<label for="duration">持续时长:</label>
<input type="number" id="duration-input" placeholder="请输入时长">
<button onclick="search()">搜索</button>
</div>
<div class="search-container" id="div2" style="display:none;">
<!-- 这里通过JavaScript动态添加复选框 -->
</div>
<div id="div3"></div>
</div>
<script>
// 假设我们有一个从服务器获取的数据数组
const dataSource = ['Item 1', 'Item 2', 'Item 3']; // 数据替换为实际数据库查询结果
function search() {
// 获取输入值并清空div2
const input = document.getElementById('duration-input');
const div2 = document.getElementById('div2');
div2.innerHTML = ''; // 清除之前的内容
// 假设根据输入值筛选出的数据
const filteredData = dataSource.filter(item => item.includes(input.value));
if (filteredData.length > 0) {
// 创建复选框并动态添加到div2
filteredData.forEach((item, index) => {
const checkbox = `<input type="checkbox" value="${item}"><label>${item}</label>`;
div2.innerHTML += checkbox; // 添加到div2
});
div2.style.display = 'block'; // 显示div2
} else {
div2.style.display = 'none'; // 隐藏div2,因为没有匹配的结果
}
// 当有复选框被选中时,更新div3
div2.addEventListener('change', () => {
const selectedItems = Array.from(div2.getElementsByTagName('input')).filter(checkbox => checkbox.checked);
updateTable(selectedItems);
});
function updateTable(selectedItems) {
// 渲染表格
const div3 = document.getElementById('div3');
div3.innerHTML = '<table><thead><tr><th>选择项</th></tr></thead>';
selectedItems.forEach(item => {
div3.innerHTML += `<tr><td>${item}</td></tr>`;
});
div3.innerHTML += '</table>';
}
}
</script>
</body>
</html>
```
阅读全文