|
<!DOCTYPE html> |
|
<html lang="ko"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>ํ์๊ด๋ฆฌ ์์คํ
</title> |
|
<style> |
|
* { |
|
margin: 0; |
|
padding: 0; |
|
box-sizing: border-box; |
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; |
|
} |
|
|
|
body { |
|
background: #f5f5f5; |
|
padding: 20px; |
|
} |
|
|
|
.container { |
|
max-width: 1200px; |
|
margin: 0 auto; |
|
background: white; |
|
padding: 30px; |
|
border-radius: 10px; |
|
box-shadow: 0 0 10px rgba(0,0,0,0.1); |
|
} |
|
|
|
h1 { |
|
color: #333; |
|
margin-bottom: 30px; |
|
text-align: center; |
|
} |
|
|
|
.form-group { |
|
margin-bottom: 15px; |
|
} |
|
|
|
label { |
|
display: block; |
|
margin-bottom: 5px; |
|
color: #555; |
|
} |
|
|
|
input { |
|
width: 100%; |
|
padding: 8px; |
|
border: 1px solid #ddd; |
|
border-radius: 4px; |
|
font-size: 14px; |
|
} |
|
|
|
button { |
|
background: #4CAF50; |
|
color: white; |
|
border: none; |
|
padding: 10px 20px; |
|
border-radius: 4px; |
|
cursor: pointer; |
|
font-size: 14px; |
|
margin-right: 10px; |
|
} |
|
|
|
button:hover { |
|
background: #45a049; |
|
} |
|
|
|
.search-section { |
|
margin: 20px 0; |
|
padding: 20px; |
|
background: #f9f9f9; |
|
border-radius: 4px; |
|
} |
|
|
|
.member-list { |
|
margin-top: 20px; |
|
} |
|
|
|
table { |
|
width: 100%; |
|
border-collapse: collapse; |
|
margin-top: 20px; |
|
} |
|
|
|
th, td { |
|
padding: 12px; |
|
text-align: left; |
|
border-bottom: 1px solid #ddd; |
|
} |
|
|
|
th { |
|
background: #f5f5f5; |
|
color: #333; |
|
} |
|
|
|
tr:hover { |
|
background: #f9f9f9; |
|
} |
|
|
|
.error { |
|
color: red; |
|
font-size: 14px; |
|
margin-top: 5px; |
|
} |
|
</style> |
|
</head> |
|
<body> |
|
<div class="container"> |
|
<h1>ํ์๊ด๋ฆฌ ์์คํ
</h1> |
|
|
|
<form id="memberForm"> |
|
<div class="form-group"> |
|
<label for="memberId">ํ์๋ฒํธ</label> |
|
<input type="text" id="memberId" required> |
|
</div> |
|
<div class="form-group"> |
|
<label for="name">์ด๋ฆ</label> |
|
<input type="text" id="name" required> |
|
</div> |
|
<div class="form-group"> |
|
<label for="age">๋์ด</label> |
|
<input type="number" id="age" required> |
|
</div> |
|
<div class="form-group"> |
|
<label for="phone">ํธ๋ํฐ๋ฒํธ</label> |
|
<input type="tel" id="phone" required> |
|
</div> |
|
<div class="form-group"> |
|
<label for="email">์ด๋ฉ์ผ์ฃผ์</label> |
|
<input type="email" id="email" required> |
|
</div> |
|
<div class="form-group"> |
|
<label for="address">์ฃผ์</label> |
|
<input type="text" id="address" required> |
|
</div> |
|
<div class="form-group"> |
|
<label for="note">๋น๊ณ </label> |
|
<input type="text" id="note"> |
|
</div> |
|
<button type="submit">๋ฑ๋ก</button> |
|
</form> |
|
|
|
<div class="search-section"> |
|
<div class="form-group"> |
|
<label for="searchName">์ด๋ฆ์ผ๋ก ๊ฒ์</label> |
|
<input type="text" id="searchName"> |
|
</div> |
|
<button onclick="searchMembers()">๊ฒ์</button> |
|
</div> |
|
|
|
<div class="member-list"> |
|
<table> |
|
<thead> |
|
<tr> |
|
<th>ํ์๋ฒํธ</th> |
|
<th>์ด๋ฆ</th> |
|
<th>๋์ด</th> |
|
<th>ํธ๋ํฐ๋ฒํธ</th> |
|
<th>์ด๋ฉ์ผ์ฃผ์</th> |
|
<th>์ฃผ์</th> |
|
<th>๋น๊ณ </th> |
|
</tr> |
|
</thead> |
|
<tbody id="memberTableBody"> |
|
</tbody> |
|
</table> |
|
</div> |
|
</div> |
|
|
|
<script> |
|
let members = []; |
|
|
|
document.getElementById('memberForm').addEventListener('submit', function(e) { |
|
e.preventDefault(); |
|
|
|
const member = { |
|
memberId: document.getElementById('memberId').value, |
|
name: document.getElementById('name').value, |
|
age: document.getElementById('age').value, |
|
phone: document.getElementById('phone').value, |
|
email: document.getElementById('email').value, |
|
address: document.getElementById('address').value, |
|
note: document.getElementById('note').value |
|
}; |
|
|
|
members.push(member); |
|
updateTable(); |
|
this.reset(); |
|
}); |
|
|
|
function searchMembers() { |
|
const searchName = document.getElementById('searchName').value.toLowerCase(); |
|
const filteredMembers = members.filter(member => |
|
member.name.toLowerCase().includes(searchName) |
|
); |
|
updateTable(filteredMembers); |
|
} |
|
|
|
function updateTable(data = members) { |
|
const tableBody = document.getElementById('memberTableBody'); |
|
tableBody.innerHTML = ''; |
|
|
|
data.forEach(member => { |
|
const row = document.createElement('tr'); |
|
row.innerHTML = ` |
|
<td>${member.memberId}</td> |
|
<td>${member.name}</td> |
|
<td>${member.age}</td> |
|
<td>${member.phone}</td> |
|
<td>${member.email}</td> |
|
<td>${member.address}</td> |
|
<td>${member.note}</td> |
|
`; |
|
tableBody.appendChild(row); |
|
}); |
|
} |
|
</script> |
|
</body> |
|
</html> |