Ngày đăng: 2023-01-10 16:03:25
Bài trước, chúng ta đã khái quát và xây dựng một vài chức năng của tài khoản, Bâi này, chúng ta viết tiếp các chức năng còn lại nhé.
1. Cập nhật nội dung bài học trước
Trước khi vào bài, mình lưu ý có một số update trong bài 15 . Các bạn hãy quay lại và update lại source code,.
Nội dung update:
- Phần 3 dòng 68: Lỗi id
lock_acc_list
trong dãy nút của danh sách tài khoản (sửa thành unlock_acc_list
)
- Phần 5 dòng 26: Lỗi class
warming
trong label trạng thái của bảng danh sách (sửa thành warning
)
- Phần 5 dòng 37, 40, 43: Thêm các class vào các thẻ a của dãy nút danh sách (
.lock-acc-list
, .unlock-acc-list
, .del-acc-list
)
Các bạn có thể sửa ngay trực tiếp trên source của bạn bạn.
Ok! Bây giờ chúng ta bắt đầu đi vào bài học hôm nay.
2. Khoá tài khoản
Tất cả các chức năng dưới đây đều chia làm hai loại: thao tác cùng lúc với nhiều tài khoản hoặc thao tác với một tài khoản chỉ định.
Khoá nhiều tài khoản cùng lúc
Viết Ajax gửi dữ liệu
Các bạn mở file admin/js/form.js
lên và copy đoạn code này:
// Khoá nhiều tài khoản cùng lúc
$( '#lock_acc_list' ).on( 'click' , function () {
$confirm = confirm( 'Bạn có chắc chắn muốn khoá các tài khoản đã chọn không?' );
if ($confirm == true )
{
$id_acc = [];
$( '#list_acc input[type="checkbox"]:checkbox:checked' ).each( function (i) {
$id_acc[i] = $( this ).val();
});
if ($id_acc.length === 0)
{
alert( 'Vui lòng chọn ít nhất một tài khoản.' );
}
else
{
$.ajax({
url : $_DOMAIN + 'accounts.php' ,
type : 'POST' ,
data : {
id_acc : $id_acc,
action : 'lock_acc_list'
},
success : function (data) {
location.reload();
}, error : function () {
alert( 'Đã có lỗi xảy ra, hãy thử lại.' );
}
});
}
}
else
{
return false ;
}
});
|
Viết PHP xử lý dữ liệu
Mở file admin/accounts.php
và chèn đoạn code này bên dưới dòng // Khoá tài khoản
:
// Khoá nhiều tài khoản cùng lúc
else if ( $action == 'lock_acc_list' )
{
foreach ( $_POST [ 'id_acc' ] as $key => $id_acc )
{
$sql_check_id_acc_exist = "SELECT id_acc FROM accounts WHERE id_acc = '$id_acc'" ;
if ( $db ->num_rows( $sql_check_id_acc_exist ))
{
$sql_lock_acc = "UPDATE accounts SET status = '1' WHERE id_acc = '$id_acc'" ;
$db ->query( $sql_lock_acc );
}
}
$db ->close();
}
|
Khoá tài khoản chỉ định
Viết Ajax gửi dữ liệu
Các bạn mở file admin/js/form.js
lên và copy đoạn code này:
// Khoá tài khoản chỉ định trong bảng danh sách
$( '.lock-acc-list' ).on( 'click' , function () {
$confirm = confirm( 'Bạn có chắc chắn muốn khoá tài khoản này không?' );
if ($confirm == true )
{
$id_acc = $( this ).attr( 'data-id' );
$.ajax({
url : $_DOMAIN + 'accounts.php' ,
type : 'POST' ,
data : {
id_acc : $id_acc,
action : 'lock_acc'
},
success : function () {
location.reload();
}
});
}
else
{
return false ;
}
});
|
Viết PHP xử lý dữ liệu
Mở file admin/accounts.php
và chèn đoạn code này bên dưới code xử lý khoá tài khoản:
// Khoá 1 tài khoản
else if ( $action == 'lock_acc' )
{
$id_acc = trim(htmlspecialchars( addslashes ( $_POST [ 'id_acc' ])));
$sql_check_id_acc_exist = "SELECT id_acc FROM accounts WHERE id_acc = '$id_acc'" ;
if ( $db ->num_rows( $sql_check_id_acc_exist ))
{
$sql_lock_acc = "UPDATE accounts SET status = '1' WHERE id_acc = '$id_acc'" ;
$db ->query( $sql_lock_acc );
$db ->close();
}
}
|
3. Mở khoá tài khoản
Chức năng này cũng tương tự như phần trên, các bạn cũng có thể tự code rồi quay lại đây xem kết quả :v
Mở khoá nhiều tài khoản cùng lúc
Viết Ajax gửi dữ liệu
Các bạn mở file admin/js/form.js
lên và copy đoạn code này:
// Mở khoá nhiều tài khoản cùng lúc
$( '#unlock_acc_list' ).on( 'click' , function () {
$confirm = confirm( 'Bạn có chắc chắn muốn mở khoá các tài khoản đã chọn không?' );
if ($confirm == true )
{
$id_acc = [];
$( '#list_acc input[type="checkbox"]:checkbox:checked' ).each( function (i) {
$id_acc[i] = $( this ).val();
});
if ($id_acc.length === 0)
{
alert( 'Vui lòng chọn ít nhất một tài khoản.' );
}
else
{
$.ajax({
url : $_DOMAIN + 'accounts.php' ,
type : 'POST' ,
data : {
id_acc : $id_acc,
action : 'unlock_acc_list'
},
success : function (data) {
location.reload();
}, error : function () {
alert( 'Đã có lỗi xảy ra, hãy thử lại.' );
}
});
}
}
else
{
return false ;
}
});
|
Viết PHP xử lý dữ liệu
Mở file admin/accounts.php
và chèn đoạn code này bên dưới dòng // Mở khoá tài khoản
:
// Mở khoá nhiều tài khoản cùng lúc
else if ( $action == 'unlock_acc_list' )
{
foreach ( $_POST [ 'id_acc' ] as $key => $id_acc )
{
$sql_check_id_acc_exist = "SELECT id_acc FROM accounts WHERE id_acc = '$id_acc'" ;
if ( $db ->num_rows( $sql_check_id_acc_exist ))
{
$sql_unlock_acc = "UPDATE accounts SET status = '0' WHERE id_acc = '$id_acc'" ;
$db ->query( $sql_unlock_acc );
}
}
$db ->close();
}
|
Mở khoá tài khoản chỉ định
Viết Ajax gửi dữ liệu
Các bạn mở file admin/js/form.js
lên và copy đoạn code này:
// Mở tài khoản chỉ định trong bảng danh sách
$( '.unlock-acc-list' ).on( 'click' , function () {
$confirm = confirm( 'Bạn có chắc chắn muốn mở khoá tài khoản này không?' );
if ($confirm == true )
{
$id_acc = $( this ).attr( 'data-id' );
$.ajax({
url : $_DOMAIN + 'accounts.php' ,
type : 'POST' ,
data : {
id_acc : $id_acc,
action : 'unlock_acc'
},
success : function () {
location.reload();
}
});
}
else
{
return false ;
}
});
|
Viết PHP xử lý dữ liệu
Mở file admin/accounts.php
và chèn đoạn code này bên dưới code xử lý mở khoá tài khoản:
// Mở khoá 1 tài khoản
else if ( $action == 'unlock_acc' )
{
$id_acc = trim(htmlspecialchars( addslashes ( $_POST [ 'id_acc' ])));
$sql_check_id_acc_exist = "SELECT id_acc FROM accounts WHERE id_acc = '$id_acc'" ;
if ( $db ->num_rows( $sql_check_id_acc_exist ))
{
$sql_unlock_acc = "UPDATE accounts SET status = '0' WHERE id_acc = '$id_acc'" ;
$db ->query( $sql_unlock_acc );
$db ->close();
}
}
|
4. Xoá tài khoản
Cũng như chức năng xoá ở trong các bài trước. Chức năng xoá này cũng chia làm 2 loại, cấu trúc của nó cũng giống như hai phần trên nên các bạn cũng có thể tự viết.
Xoá nhiều tài khoản cùng lúc
Viết Ajax gửi dữ liệu
Các bạn mở file admin/js/form.js
lên và copy đoạn code này:
// Xoá nhiều tài khoản cùng lúc
$( '#del_acc_list' ).on( 'click' , function () {
$confirm = confirm( 'Bạn có chắc chắn muốn xoá các tài khoản đã chọn không?' );
if ($confirm == true )
{
$id_acc = [];
$( '#list_acc input[type="checkbox"]:checkbox:checked' ).each( function (i) {
$id_acc[i] = $( this ).val();
});
if ($id_acc.length === 0)
{
alert( 'Vui lòng chọn ít nhất một tài khoản.' );
}
else
{
$.ajax({
url : $_DOMAIN + 'accounts.php' ,
type : 'POST' ,
data : {
id_acc : $id_acc,
action : 'del_acc_list'
},
success : function (data) {
location.reload();
}, error : function () {
alert( 'Đã có lỗi xảy ra, hãy thử lại.' );
}
});
}
}
else
{
return false ;
}
});
|
Viết PHP xử lý dữ liệu
Mở file admin/accounts.php
và chèn đoạn code này bên dưới dòng // Xoá tài khoản
:
// Xoá nhiều tài khoản cùng lúc
else if ( $action == 'del_acc_list' )
{
foreach ( $_POST [ 'id_acc' ] as $key => $id_acc )
{
$sql_check_id_acc_exist = "SELECT id_acc FROM accounts WHERE id_acc = '$id_acc'" ;
if ( $db ->num_rows( $sql_check_id_acc_exist ))
{
$sql_del_acc = "DELETE FROM accounts WHERE id_acc = '$id_acc'" ;
$db ->query( $sql_del_acc );
}
}
$db ->close();
}
|
Xoá tài khoản chỉ định
Viết Ajax gửi dữ liệu
Các bạn mở file admin/js/form.js
lên và copy đoạn code này:
// Xoá tài khoản chỉ định trong bảng danh sách
$( '.del-acc-list' ).on( 'click' , function () {
$confirm = confirm( 'Bạn có chắc chắn muốn xoá tài khoản này không?' );
if ($confirm == true )
{
$id_acc = $( this ).attr( 'data-id' );
$.ajax({
url : $_DOMAIN + 'accounts.php' ,
type : 'POST' ,
data : {
id_acc : $id_acc,
action : 'del_acc'
},
success : function () {
location.reload();
}
});
}
else
{
return false ;
}
});
|
Viết PHP xử lý dữ liệu
Mở file admin/accounts.php
và chèn đoạn code này bên dưới code xử lý xoá tài khoản:
// Xoá 1 tài khoản
else if ( $action == 'del_acc' )
{
$id_acc = trim(htmlspecialchars( addslashes ( $_POST [ 'id_acc' ])));
$sql_check_id_acc_exist = "SELECT id_acc FROM accounts WHERE id_acc = '$id_acc'" ;
if ( $db ->num_rows( $sql_check_id_acc_exist ))
{
$sql_del_acc = "DELETE FROM accounts WHERE id_acc = '$id_acc'" ;
$db ->query( $sql_del_acc );
$db ->close();
}
}
|
Giờ các bạn chạy thử xem thành quả nhé!
5. Lời kết
Các chức năng trên đây tương tự nhau nên các bạn có thể tự xây dựng được mà không cần nhìn vào source code. Bài sau , chúng ta xây dựng chức năng hồ sơ admin cho ứng dụng Nếu các bạn còn thắc mắc xin gửi comment bên dưới mình sẽ hỗ trợ các bạn. Cảm ơn các bạn đã theo dõi, chúc các bạn thành công!