Thứ Năm, 23 tháng 6, 2016

Phần 39 - Làm phần quản lý menu ngang

- Tiếp theo là làm phần quản lý menu ngang , bạn tạo file 'quan_ly_menu_ngang.php' trong thư mục 'menu_ngang' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<?php
    $so_dong_tren_mot_trang=20;
    if(!isset($_GET['trang'])){$_GET['trang']=1;}
   
    $tv="select count(*) from menu_ngang";
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    $so_trang=ceil($tv_2[0]/$so_dong_tren_mot_trang);
   
    $vtbd=($_GET['trang']-1)*$so_dong_tren_mot_trang;
    $tv="select id,ten from menu_ngang order by id limit $vtbd,$so_dong_tren_mot_trang";
    $tv_1=mysql_query($tv);
?>
<table width="990px" class="tb_a1" >
    <tr style="background:#CCFFFF;height:40px;" >
        <td width="550px" ><b>Tên</b></td>
        <td align="center" width="220px" ><b>Sửa</b></td>
        <td align="center" width="220px" ><b>Xóa</b></td>
    </tr>
    <?php
        while($tv_2=mysql_fetch_array($tv_1))
        {
            $id=$tv_2['id'];
            $ten=$tv_2['ten'];
            $link_sua="?thamso=sua_menu_ngang&id=".$id."&trang=".$_GET['trang'];
            $link_xoa="?xoa_menu_ngang=co&id=".$id;
            ?>
                <tr class="a_1" >
                    <td>
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" ><?php echo $ten; ?></a>
                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" >Sửa</a>
                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_xoa; ?>" class="lk_a1" >Xóa</a>
                    </td>
                </tr>
            <?php
        }
    ?>
    <tr>
        <td colspan="3" align="center" >
            <br>
            <?php
                for($i=1;$i<=$so_trang;$i++)
                {
                    $link_phan_trang="?thamso=quan_ly_menu_ngang&trang=".$i;
                    echo "<a href='$link_phan_trang' class='phan_trang' >";
                        echo $i;
                    echo "</a> ";
                }
            ?>
            <br><br>
        </td>
    </tr>
</table>

- Sau đó tại file 'quan_tri/index.php' , bạn thêm dòng code sau phía sau dòng code
<script src='phan_bo_tro/tinymce/js/tinymce/tinymce.min.js'></script> :

<link rel="stylesheet" type="text/css" href="giao_dien/giao_dien.css">

- Dòng code này là gọi file 'giao_dien.css' vào file 'index.php'.Sau đó bạn tạo thư mục 'giao_dien' trong thư mục 'quan_tri' , rồi tạo file 'giao_dien.css' trong thư mục 'giao_dien' với nội dung sau :

table.tb_a1 tr.a_1 {height:30px;}
table.tb_a1 tr.a_1:hover {background:#FFFF99;}

a.lk_a1{text-decoration:none;color:blue;}
a.lk_a1:hover{color:red;}

a.phan_trang{text-decoration:none;color:blue;font-size:22px;}
a.phan_trang:hover{color:red;}

- Bạn xem giải thích code (phần chữ xanh)  của file 'quan_ly_menu_ngang.php' ở phần bên dưới :

<?php
    if(!isset($bien_bao_mat)){exit();} // xuất ra trang trắng nếu truy cập trực tiếp vào file này
?>
<?php
    $so_dong_tren_mot_trang=20;
    if(!isset($_GET['trang'])){$_GET['trang']=1;}
    // nếu không tồn tại biến 'trang' trên url thì biến này có giá trị là 1 , làm như vậy là để tính biến $vtbd
    // biến $vtbd là vị trí bắt đầu giới hạn menu trong câu truy vấn select , limit phía dưới , giá trị biến $vtbd tùy theo biến 'trang' trên url
    // (nghĩa là giá trị của biến $vtbd tùy vào trang đang hiện hành)

   
    $tv="select count(*) from menu_ngang"; // đếm số dòng trong bảng 'menu_ngang'
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    $so_trang=ceil($tv_2[0]/$so_dong_tren_mot_trang);
    // tính số trang xuất ra của phần quản lý menu ngang (nếu lớn hơn 20 thì số trang lớn hơn 1 )
    // số trang bằng tổng dữ liệu trong bảng 'menu_ngang' chia cho số dòng (số menu) trong 1 trang rồi làm tròn số
   
    $vtbd=($_GET['trang']-1)*$so_dong_tren_mot_trang;
    // tính vị trí bắt đầu giới hạn của bảng 'menu_ngang' tùy theo trang hiện hành
    // ở đây , nếu là trang 1 thì $vtbd=0 , nếu là trang 2 thì $vtbd=20 , nếu là trang 3 thì $vtbd=40 ...
    $tv="select id,ten from menu_ngang order by id limit $vtbd,$so_dong_tren_mot_trang";
    // lệnh truy cập vào bảng 'menu_ngang' sắp xếp theo 'id' tăng dần với giới hạn là tùy theo trang hiện tại
    // ở đây là chỉ truy cập vào cột 'id' và cột 'ten'
    // ban đầu thì vị trí bắt đầu giới hạn là 0
    $tv_1=mysql_query($tv);
?>
<table width="990px" class="tb_a1" >
// xuất ra bảng chứa danh sách các menu ngang cới class là 'tb_a1' , class này sẽ được dùng trong file 'giao_dien.css'
    <tr style="background:#CCFFFF;height:40px;" > // hàng đầu tiên có chiều cao 40px và có màu nền là 1 mã màu (#CCFFFF)
        <td width="550px" ><b>Tên</b></td>
        <td align="center" width="220px" ><b>Sửa</b></td>
        <td align="center" width="220px" ><b>Xóa</b></td>
    </tr>
    <?php
        while($tv_2=mysql_fetch_array($tv_1))
        // xuất dòng dữ liệu từ bảng 'menu_ngang' ra , dữ liệu được gán vào biến $tv_2 (biến này là 1 mảng)
        {
            $id=$tv_2['id']; // gán cột 'id' của dòng dữ liệu đang được lấy dữ liệu vào biến $id
            $ten=$tv_2['ten']; // gán cột 'ten' của dòng dữ liệu đang được lấy dữ liệu vào biến $ten
            $link_sua="?thamso=sua_menu_ngang&id=".$id."&trang=".$_GET['trang'];
            // tạo link sửa menu với biến 'thamso' trên url có giá trị là 'sua_menu_ngang'
            // link sửa cũng có biến 'id' trên url là cột 'id' của dòng dữ liệu đang được lấy

            // ở đây truyền thêm biến 'trang' trên url để tạo liên kết "Đóng" từ trang sửa menu ngang
            // (phải có biến này để biết vị trí trang trước đó mà trở về sau khi bấm nút "Đóng" )

            $link_xoa="?xoa_menu_ngang=co&id=".$id;
            // tạo link xóa menu với biến 'xoa_menu_ngang' trên url có giá trị là 'co'
            //  link xóa cũng có biến 'id' trên url là cột 'id' của dòng dữ liệu đang được lấy

            ?>
                <tr class="a_1" >
                // xuất hàng chứa menu xuất ra từ bảng 'menu_ngang' , hàng này có class là 'a_1'
                    <td>
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" ><?php echo $ten; ?></a>
                        // xuất tên menu , đồng thời xuất ra liên kết sửa menu với class là 'lk_a1'
                        // (class này được định dạng css trong file 'giao_dien.css')

                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_sua; ?>" class="lk_a1" >Sửa</a>
                        // xuất liên kết sửa menu với class là 'lk_a1'
                        // (class này được định dạng css trong file 'giao_dien.css')
                    </td>
                    <td align="center" >
                        <a href="<?php echo $link_xoa; ?>" class="lk_a1" >Xóa</a>
                        // xuất liên kết xóa menu với class là 'lk_a1'
                        // (class này được định dạng css trong file 'giao_dien.css')
                    </td>
                </tr>
            <?php
        }
    ?>
    <tr>
        <td colspan="3" align="center" >
            <br>
            <?php
                for($i=1;$i<=$so_trang;$i++) // chạy từ trang 1 đến trang cuối cùng
                {
                    $link_phan_trang="?thamso=quan_ly_menu_ngang&trang=".$i;
                    // tạo liên kết phân trang , liên kết phân trang đến trang nào thì biến 'trang' trên url có giá trị là trang đó
                    echo "<a href='$link_phan_trang' class='phan_trang' >";
                    // xuất liên kết phân trang với class là 'phan_trang'
                        echo $i;
                    echo "</a> ";
                }
            ?>
            <br><br>
        </td>
    </tr>
</table>


- Bạn xem giải thích code (phần chữ xanh)  của file 'giao_dien.css' ở phần bên dưới :


table.tb_a1 tr.a_1 {height:30px;} // chiều cao của hàng menu trong bảng 'menu_ngang' xuất ra là 30px
table.tb_a1 tr.a_1:hover {background:#FFFF99;}
// màu nền khi rê chuột vào hàng menu trong bảng 'menu_ngang' xuất ra là 1 mã màu (#FFFF99)

a.lk_a1{text-decoration:none;color:blue;}
// liên kết có class 'lk_a1' (cụ thể là trong file 'quan_ly_menu_ngang.php' ) thì không gạch dưới và chữ màu xanh
a.lk_a1:hover{color:red;} // khi rê chuột vào liên kết có class 'class 'lk_a1' thì màu chữ đổi thành màu đỏ ( để ý có chữ hover )

a.phan_trang{text-decoration:none;color:blue;font-size:22px;}
// liên kết phân trang mà có class là 'phan_trang' thì không gạch dưới , chữ màu xanh và kích cỡ chữ là 22px
a.phan_trang:hover{color:red;}
// liên kết phân trang mà có class là 'phan_trang' thì khi rê chuột vào sẽ có chữ màu đỏ (red)


- Mình bấm vào liên kết 'Quản lý menu ngang' tại trang chủ của trang quản trị thì nhận được kết quả sau :


 - Khi mình bấm vào liên kết quản lý menu ngang (ở file 'trang_chu_2.php' ) => web sẽ đến trang ?thamso=quan_ly_menu_ngang , web sẽ tải file 'dieu_huong.php' và  gọi file 'quan_ly_menu_ngang.php' bằng đoạn code sau :

case "quan_ly_menu_ngang":
    include("chuc_nang/menu_ngang/quan_ly_menu_ngang.php");
break;

- Từ đó sẽ xuất ra trang quản lý menu ngang

- Kết thúc phần này thì file 'index.php' trong thư mục 'quan_tri' có nội dung sau :

<?php
    session_start();
    $bien_bao_mat="co";
    include("../ket_noi.php");   
    include("chuc_nang/quan_tri_2/xac_dinh_dang_nhap.php");
    include("chuc_nang/quan_tri_2/ham.php");
    if(isset($xac_dinh_dang_nhap))
    {
        if($xac_dinh_dang_nhap=="co")
        {
            include("chuc_nang/quan_tri_2/xu_ly_post_get.php");
        }  
    }
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Quản trị</title>
        <script src='phan_bo_tro/tinymce/js/tinymce/tinymce.min.js'></script>
        <link rel="stylesheet" type="text/css" href="giao_dien/giao_dien.css">
    </head>
    <body>
        <?php
            if(!isset($xac_dinh_dang_nhap))
            {
                include("chuc_nang/quan_tri_2/khung_dang_nhap.php");
            }
            else
            {
                if($xac_dinh_dang_nhap=="co")
                {
                    echo "<center>";
                        include("chuc_nang/quan_tri_2/trang_chu.php");
                    echo "</center>";
                }
            }
        ?>
    </body>
</html>