_bai_2_
<?php
include('./config.php');
include('./function.php');
//nếu người dùng nhấn nút xóa
if (isset($_POST['deleterow'])) {
$id = $_POST['rowdeleting'];
$query = "DELETE FROM sinhvien WHERE masv = '{$id}'";
mysql_query($query);
$error ="Đã xóa thành công";
}
//nếu người dùng nhấn nút thêm mới
if (isset($_POST['add'])) {
$masv = $_POST['addmasv'];
$hoten = $_POST['addhoten'];
$ngaysinh = $_POST['addngaysinh'];
$gioitinh = $_POST['addgioitinh'];
$cout = 0;
$error = "<ul>";
//check lỗi
if (empty($masv) || empty($hoten) || empty($ngaysinh)) {
$error .="<li>Mã sinh viên, họ tên và ngày sinh không được để trống</li>";
$cout++;
}
$query = mysql_query("SELECT masv FROM sinhvien WHERE masv = '{$masv}'");
if (mysql_num_rows($query) > 0) {
$cout++;
$error .="<li>Mã sinh viên đã tồn tại</li>";
}
//nếu không có lỗi
if ($cout == 0) {
$query = "INSERT INTO sinhvien(masv,hoten,ngaysinh,quequan,gioitinh)
VALUES('{$masv}','{$hoten}','{$ngaysinh}','{$quequan}','{$gioitinh}')";
$rs = mysql_query($query);
$error ="Thêm mới thành công";
} else {
$error .= "</ul>";
}
}
//nếu người dùng nhấn nút sửa
if (isset($_POST['editrow'])) {
$edited = 0; //biến kiểm tra xem trang web đang trong tình trạng sửa dữ liệu hay không
$editmasv = $_POST['editmasv'];
$edithoten = $_POST['edithoten'];
$editngaysinh = $_POST['editngaysinh'];
$editgioitinh = $_POST['editgioitinh'];
$rowedit = $_POST['rowedit'];
$index = $_POST['index'];
$oldmasv = $_POST['masv']; //mã sinh viên cũ, dùng để so sánh và check lỗi, nếu người dùng nhập mã sinh viên khác thì mới check trùng, còn không thay đổi thì k check
$cout = 0;
$error = "<ul>";
//check lỗi
if (empty($editmasv) || empty($edithoten) || empty($editngaysinh)) {
$error .="<li>Mã sinh viên, họ tên và ngày sinh không được để trống</li>";
$cout++;
}
if ( $editmasv != $oldmasv) {
$query = mysql_query("SELECT masv FROM sinhvien WHERE masv = '{$editmasv}'");
if (mysql_num_rows($query) > 0) {
$cout++;
$error .="<li>Mã sinh viên đã tồn tại</li>";
}
}
//nếu không có lỗi
if ($cout == 0) {
$query = "UPDATE sinhvien SETmasv = '{$editmasv}',
hoten = '{$edithoten}',
ngaysinh = '{$editngaysinh}',
gioitinh = '{$editgioitinh}'
WHERE masv = '{$oldmasv}'
";
mysql_query($query);
$error ="Cập nhật thành công";
$edited = 1;
} else {
$error .= "</ul>";
}
}
// mặc định sau tất cả các hành động đều select lại từ cơ sở dữ liệu về thông tin của tất cả sinh viên
$query = "SELECT masv,hoten,ngaysinh,quequan,gioitinh FROM sinhvien";
$rs = getGroupByQuery($query);
$lastIndex = count($rs) + 1; //biến này để đánh số thứ tự cho dòng cuối cùng (dòng thêm mới)
$i = 0;
for ($i = 0;$i< count($rs);$i++) {
//khởi tạo thông tin của bảng
$index = $i+1;
$tabledata .="<tr id='view-{$index}'>";
$tabledata .="<td>{$index}</td>";
$tabledata .="<td>{$rs[$i]['masv']}</td>";
$tabledata .="<td>{$rs[$i]['hoten']}</td>";
$tabledata .="<td>{$rs[$i]['ngaysinh']}</td>";
$tabledata .="<td>{$rs[$i]['gioitinh']}</td>";
$tabledata .="<td><a href='javascript:' onclick='editrow(\"view-{$index}\",
\"{$index}\",
\"{$rs[$i]['masv']}\",
\"{$rs[$i]['hoten']}\",
\"{$rs[$i]['ngaysinh']}\",
\"{$rs[$i]['gioitinh']}\"
)'>Sửa</a></td>";
$tabledata .="<td><a href='javascript:' id='{$rs[$i]['masv']}' onclick='return deleterow(this.id)'>Xóa</a></td>";
$tabledata .="</tr>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
<meta />
<style>
.messenger {
font-weight:bold;
color:#ff0000;
padding-left:100px;
}
</style>
<script>
window.onload= function() {
//giống bài trước, để lưu trữ lại giới tính đã chọn khi nhập dữ liệu lỗi
var gioitinh = document.getElementsByName("addgioitinh")[0];
if ("<?php echo $gioitinh; ?>" == "Nam" || "<?php echo $gioitinh; ?>" == "") {
gioitinh.value = "Nam";
} else {
gioitinh.value = "Nữ";
}
//cái này dùng khi người dùng nhập dữ liệu lỗi, $edited == 0, gọi lại hàm editrow() để sửa dòng
if ("<?php echo $edited; ?>" == "0") {
try {
editrow("<?php echo $rowedit; ?>",
"<?php echo $index; ?>",
"<?php echo $editmasv;?>",
"<?php echo $edithoten; ?>",
"<?php echo $editngaysinh; ?>",
"<?php echo $editgioitinh;?>"
);
} catch (e) {alert(e) };
}
}
//hỏi xem bạn có chắc chắn muốn xóa và lấy ra id của dòng đó phục vụ cho việc xóa dữ liệu
function deleterow(id) {
if (confirm('Bạn có chắc chắn muốn xóa?')) {
document.getElementById("rowdeleting").setAttribute("value",id);
document.getElementById("deleterow").click();
} else {
return false;
};
}
//hàm khởi tạo việc sử dòng
function editrow(id,index,masv,hoten,ngaysinh,gioitinh) {
var thisrow = document.getElementById(id);
thisrow.innerHTML = "<tr id='"+ id +"'><td>"+ index + "</td>"
+"<td><input type='text' name='editmasv' value='"+ masv +"' /></td>"
+"<td><input type='text' name='edithoten' value='"+ hoten +"' /></td>"
+"<td><input type='text' name='editngaysinh' value='"+ ngaysinh +"' /></td>";
thisrow.innerHTML += (gioitinh == "Nam")?"<td><select name='editgioitinh'><option selected='selected' value='Nam'>Nam</option><option value='Nữ'>Nữ</option></select></td>":"<td><select name='editgioitinh'><option value='Nam'>Nam</option><option selected='selected' value='Nữ'>Nữ</option></select></td>";
thisrow.innerHTML +="<td><input type='submit' name='editrow' value='Sửa' /></td>"
+"<td><a href='javascript:' id='{$rs[$i]['masv']}' onclick='return deleterow(this.id)'>Xóa</a></td>";
+"</tr>";
document.getElementById("rowedit").setAttribute("value",id);
document.getElementById("index").setAttribute("value",index);
document.getElementById("masv").setAttribute("value",masv);
}
</script>
</head>
<body>
<h1>Quản lý sinh viên</h1>
<hr />
<div><?php echo $error; ?></div>
<form>
<table>
<tr>
<th>STT</th>
<th>Mã sinh viên</th>
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
<th>Thêm / sửa</th>
<th>Xóa</th>
</tr>
<?php echo $tabledata; ?>
<tr>
<td><?php echo $lastIndex; ?></td>
<td><input /></td>
<td><input /></td>
<td><input /></td>
<td>
<select>
<option>Nam</option>
<option>Nữ</option>
</select>
</td>
<td><input /></td>
<td></td>
</tr>
</table>
<input />
<input /> <!-- trường ẩn để lưu trữ id cần xóa khi người dùng nhấn nút xóa-->
<input /> <!-- trường ẩn để lưu trữ id của dòng cần sửa khi người dùng đang sửa -->
<input /> <!-- trường ẩn lưu trữ stt của dòng đang tác động vào -->
<input /> <!-- trường ẩn lưu trữ mã sinh viên ta đang xóa hoặc sửa -->
<!-- trường ẩn là trường không hiển thị ra bên ngoài nhưng chứa giá trị trung gian để ta làm việc -->
</form>
</body>
</html>
Bạn đang đọc truyện trên: AzTruyen.Top