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

Phần 43 - Làm phần thêm menu dọc

- Tiếp theo là làm phần thêm menu dọc , bạn tạo thư mục 'menu_doc' trong thư mục 'chuc_nang' (đường dẫn là 'quan_tri/chuc_nang') rồi bạn tạo file 'them_menu_doc.php' trong thư mục 'menu_doc' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<form action="" method="post">
    <table width="990px" >
        <tr>
            <td colspan="2" ><b style="color:blue;font-size:20px" >Thêm menu dọc</b><br><br> </td>
           
        </tr>
        <tr>
            <td width="150px" >Tên : </td>
            <td width="840px">
                <input style="width:400px;margin-top:3px;margin-bottom:3px;" name="ten" value="" >
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
                <br>
                <input type="submit" name="bieu_mau_them_menu_doc" value="Thêm menu" style="width:200px;height:50px;font-size:24px" >
            </td>
        </tr>
    </table>
</form>

- Bạn xem giải thích code (phần chữ xanh) của file 'them_menu_doc.php'  ở phía 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
?>
<form action="" method="post"> // tạo biểu mẫu với phương thức là post (thuộc tính method)
    <table width="990px" >
        <tr>
            <td colspan="2" ><b style="color:blue;font-size:20px" >Thêm menu dọc</b><br><br> </td>
            // xuất tiêu đề màu xanh và kích cỡ chữ 20px
        </tr>
        <tr>
            <td width="150px" >Tên : </td>
            <td width="840px">
                <input style="width:400px;margin-top:3px;margin-bottom:3px;" name="ten" value="" >
                // xuất khung nhập liệu tên ; khung này cách trên cách dưới 3px (margin-top,margin-bottom) và rộng 400px (width)
                // lưu ý khung này có name là 'ten' => khi lấy dữ liệu từ khung này bằng mã php thì viết là $_POST['ten']
                // (biểu mẫu hiện tại dùng phương thức post (thuộc tính method) nên khi lấy dữ liệu thì dùng $_POST )
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
                <br>
                <input type="submit" name="bieu_mau_them_menu_doc" value="Thêm menu" style="width:200px;height:50px;font-size:24px" >
                // tạo nút gửi biểu mẫu thêm menu dọc với name là 'bieu_mau_them_menu_doc'
                // trong file 'xu_ly_post_get.php' sẽ dùng phần name này
                // để xác định biểu mẫu có được gửi hay không ( isset($_POST['bieu_mau_them_menu_doc']) )
                // định dạng css của nút này (thuộc tính style) là : rộng 200px , cao 50px , kích cỡ chữ 24px
            </td>
        </tr>
    </table>
</form>

- Mình đăng nhập quản trị rồi bấm vào liên kết 'Thêm menu dọc' thì nhận được kết quả sau :



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


case "them_menu_doc":
    include("chuc_nang/menu_doc/them_menu_doc.php");
break;

- Từ đó sẽ xuất ra biểu mẫu thêm menu dọc

- Tiếp theo là làm tiếp phần thêm menu dọc vào bảng 'menu_doc'.Bạn tạo file 'them_menu_doc_vao_csdl.php' trong thư mục 'menu_doc' với nội dung sau :

<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<?php
    $ten_menu=trim($_POST['ten']);
    $ten_menu=str_replace("'","&#39;",$ten_menu);
    if($ten_menu!="")
    {
        $tv="
        INSERT INTO menu_doc (
        id ,
        ten
        )
        VALUES (
        NULL ,
        '$ten_menu'
        );";
        mysql_query($tv);
    }
    else
    {
        thong_bao_html("Tên menu chưa được điền vào");
    }
?>


- Bạn xem giải thích code (phần chữ xanh) của file 'them_menu_doc_vao_csdl.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
    // dùng $_POST để lấy giá trị của biểu mẫu thêm menu dọc được gửi
    $ten_menu=trim($_POST['ten']); // lấy tên menu ngang gán vào biến $ten_menu và loại bỏ khoảng trống ở 2 bên trái phải của tên menu
    $ten_menu=str_replace("'","&#39;",$ten_menu);
    // thay thế dấu ' thành &#39; (cách viết này cũng hiển thị ra dấu ' )
    //  làm như vậy để tránh gây ra lỗi sql khi thêm dữ liệu , với cách viết câu truy vấn thêm dữ liệu như bên dưới thì sẽ xảy ra lỗi
    // khi thêm dữ liệu mà tên menu có dấu ' nên cần có sự thay thế này
    if($ten_menu!="") // đây là trường hợp tên menu được điền vào , lúc này biến $ten_menu sẽ khác rỗng
    {
        $tv="
        INSERT INTO menu_doc ( // câu truy vấn thêm dữ liệu thì dùng lệnh insert into , bảng menu_doc sẽ được thêm dữ liệu
        id , // tên cột 'id'
        ten // tên cột 'ten'
        )
        VALUES (
        NULL , // id sẽ được tăng tự động
        '$ten_menu' // gán biến $ten_menu vào cột 'ten'
        );";
        mysql_query($tv); // gửi câu truy vấn vào mysql bằng lệnh mysql_query
    }
    else
    {
        // trường hợp không điền tên menu
        thong_bao_html("Tên menu chưa được điền vào");
        // xuất ra thông báo "Tên menu chưa được điền vào"
    }
?>


- Sau đó mình thêm dữ liệu thì đã thấy đã thêm được dữ liệu (mình thêm Menu 9 ) , kết quả mình nhận được :



 - Khi mình không điền tên menu thì sẽ nhận được thông báo "Tên menu chưa được điền vào"

- Khi bạn thực hiện gửi biểu mẫu thêm menu dọc thì web sẽ chạy file 'xu_ly_post_get.php' , lúc này sẽ tồn tại biến $_POST['bieu_mau_them_menu_doc'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file  'them_menu_doc_vao_csdl.php' ( để xử lý thêm dữ liệu menu dọc ) bằng đoạn code sau :

if(isset($_POST['bieu_mau_them_menu_doc']))
{
    include("chuc_nang/menu_doc/them_menu_doc_vao_csdl.php");
    trang_truoc_html();
}

- File 'them_menu_doc_vao_csdl.php' sẽ thực hiện thêm dữ liệu vào bảng 'menu_doc' bằng lệnh insert nếu như tên menu được điền vào