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

Phần 38 - Xử lý thêm menu ngang

- Tiếp theo là làm tiếp phần thêm menu ngang vào bảng 'menu_ngang'.Bạn tạo file 'them_menu_ngang_vao_csdl.php' trong thư mục 'menu_ngang' 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);
    $loai_menu=$_POST['loai_menu'];
    $noi_dung=$_POST['noi_dung'];
    $noi_dung=str_replace("'","&#39;",$noi_dung);
    if($ten_menu!="")
    {
        $tv="
        INSERT INTO menu_ngang (
        id ,
        ten ,
        noi_dung ,
        loai_menu
        )
        VALUES (
        NULL ,
        '$ten_menu',
        '$noi_dung',
        '$loai_menu'
        );";
        mysql_query($tv);
        $_SESSION['loai_menu_wr8']=$loai_menu;
    }
    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_ngang_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 ngang đượ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
    $loai_menu=$_POST['loai_menu']; // lấy loại menu và gán vào biến $loai_menu
    $noi_dung=$_POST['noi_dung']; // lấy nội dung của menu rồi gán vào biến $noi_dung
    $noi_dung=str_replace("'","&#39;",$noi_dung); // thay thế dấu ' thành &#39; , lý do là tránh gây ra lỗi sql
    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_ngang ( // câu truy vấn thêm dữ liệu thì dùng lệnh insert into , bảng menu_ngang sẽ được thêm dữ liệu
        id , // tên cột 'id'
        ten , // tên cột 'ten'
        noi_dung , // tên cột 'noi_dung'
        loai_menu // tên cột 'loai_menu'
        )
        VALUES (
        NULL , // id sẽ được tăng tự động
        '$ten_menu', // gán biến $ten_menu vào cột 'ten'
        '$noi_dung', // gán biến $noi_dung vào cột 'noi_dung'
        '$loai_menu' // gán biến $loai_menu vào cột 'loai_menu'
        );";
        mysql_query($tv); // gửi câu truy vấn vào mysql bằng lệnh mysql_query
        $_SESSION['loai_menu_wr8']=$loai_menu;

    }
    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 6 ) , 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 ngang 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_ngang'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file  'them_menu_ngang_vao_csdl.php' ( để xử lý thêm dữ liệu menu ngang ) bằng đoạn code sau :

if(isset($_POST['bieu_mau_them_menu_ngang']))
{
    include("chuc_nang/menu_ngang/them_menu_ngang_vao_csdl.php");
    trang_truoc_html();
}

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