Bài 16: PHP trang tin tức - Các chức năng của tài khoản admin (tiếp theo)

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é.

Mục lục: 

            1. Cập nhật nội dung bài học trước

            2. Khóa tài khoản

            3. Mở khóa tài khoản

            4. Xóa tài khoản

​​​​​​            5. Lời kết

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!


Code games & Web Làm web tin tức căn bản bằng PHP

Bài viết trong cùng chuyên mục

Góc games giải trí



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Tower game

Plapy Bird (NH.Đông)

Vượt chướng ngại vật



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Comment

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!

Trả lời

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

Trả lời

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

Trả lời

 +   -:

Trả lời

 +   -:

Trả lời

11972