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

Phần 21 - Thêm biểu mẫu lấy thông tin mua hàng trong trang giỏ hàng

- Bây giờ làm phần mua hàng , tạo hóa đơn.Sau khi người dùng thêm sản phẩm vào giỏ và quyết định mua thì cần tạo một biểu mẫu để lấy thông tin khách hàng như họ tên , địa chỉ khách hàng.Sau đó tạo ra 1 nút bấm cho người dùng gửi thông tin mua hàng và sau khi người dùng gửi biểu mẫu đó thì web sẽ tạo ra 1 hóa đơn gửi vào trang quản trị

- Tại file 'gio_hang.php' , bạn thêm dòng code sau nằm sau dòng code echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ"; :


include("chuc_nang/gio_hang/bieu_mau_mua_hang.php");

- Như vậy khi truy cập trang giỏ hàng (trường hợp có mua hàng) thì file 'gio_hang.php' sẽ gọi file 'bieu_mau_mua_hang.php' để chạy (trong thư mục 'gio_hang').Code 'bieu_mau_mua_hang.php' sẽ xuất ra một biểu mẫu để lấy thông tin khách hàng nếu khách hàng quyết định mua hàng

- Bạn tạo file 'bieu_mau_mua_hang.php' trong thư mục 'gio_hang' với nội dung sau :

<?php
    echo "<br>";
    echo "<br>";
    echo "<form method='post' action='' >";
        echo "<input type='hidden' name='thong_tin_khach_hang' value='co' > ";
        echo "<table>";
            echo "<tr>";
                echo "<td colspan='2' height='30px' >";
                    echo "<b>Thông tin mua hàng</b>";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td height='40px' >Lưu ý : </td>";
                echo "<td>";
                    echo "Tên người mua , địa chỉ , điện thoại bắt buộc phải điền vào";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td width='180px' >Tên người mua :</td>";
                echo "<td>";
                    echo "<input type='text' style='width:400px' name='ten_nguoi_mua' >";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td>Email : </td>";
                echo "<td>";
                    echo "<input type='text' style='width:400px' name='email' >";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td>Địa chỉ : </td>";                  
                echo "<td>";
                    echo "<textarea style='width:400px;' name='dia_chi' ></textarea>";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td>Điện thoại : </td>";
                echo "<td>";
                    echo "<input type='text' style='width:400px' name='dien_thoai' >";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td>Nội dung :</td>";
                echo "<td>";
                    echo "<textarea style='width:400px;height:100px' name='noi_dung' ></textarea>";
                echo "</td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td>&nbsp;</td>";
                echo "<td>";
                    echo "<input type='submit' value='Mua hàng' >";
                echo "</td>";
            echo "</tr>";
        echo "</table>";
    echo "</form>";
?>

+ Đoạn code trên dùng 1 thẻ 'input' kiểu 'hidden' với tên là 'thong_tin_khach_hang' nhằm mục đích xác định biểu mẫu này có gửi hay không (nếu có gửi thì sẽ tồn tại biến form post 'thong_tin_khach_hang' ($_POST['thong_tin_khach_hang']))

+ Sau đó dùng bảng để chứa các thẻ 'input' , 'textarea' khác (lưu ý là thẻ 'textarea' hiển thị khung văn bảng nhiều dòng).Các thẻ này nhằm mục đích lấy 'Tên người mua' , 'Email' , 'Địa chỉ','Điện thoại','Nội dung' mà khách hàng nhập vào (điền thông tin mua hàng)

+ Các thẻ đó lần lượt có tên là 'ten_nguoi_mua','email','dia_chi','dien_thoai','noi_dung' (nằm trong thuộc tính name) và khi lấy giá trị các thẻ đó thì dùng $_POST ($_POST['ten_nguoi_mua'],$_POST['email'],$_POST['dia_chi'],$_POST['dia_chi'],$_POST['noi_dung'])

+ Sau cùng là dùng thẻ 'input' kiểu 'submit' để tạo nút gửi biểu mẫu form đi

- Bạn thử thêm sản phẩm vào giỏ thì sẽ thấy kết quả tương tự như sau :

 


 - Bây giờ bạn cần tạo ra bảng 'hoa_don' trong phpmyadmin để chứa các thông tin mua hàng của khách.Bạn tạo ra bảng 'hoa_don' với 7 cột là 'id','ten_nguoi_mua','email','dia_chi','dien_thoai','noi_dung','hang_duoc_mua' :


- Trong đó thì cột 'id' là tăng tự động (bạn nhớ đánh dấu vào phần 'A_I') .Ba cột 'ten_nguoi_mua' , 'email', 'dien_thoai' đều có 'Type' là 'VARCHAR' và có 'Length/Values' là '256'.Ba cột 'dia_chi','noi_dung','hang_duoc_mua' đều có 'Type' là 'MEDIUMTEXT'

- Ở đây cột hang_duoc_mua sẽ lưu id và số lượng các sản phẩm được thêm vào giỏ (lưu session id và session số lượng vào) , trang quản trị nhờ phần lưu này mà biết được người dùng đã mua những món hàng gì

- Nếu bạn vẫn chưa biết cách tạo bảng 'table' trong phpmyadmin thì bạn cần đọc bài viết này :

Tạo bảng table trong phpmyadmin (Bấm vào để xem)

- Hết phần này thì nội dung file 'gio_hang.php' tương tự như sau :



<?php
    if(isset($_GET['id']) and $_SESSION['trang_chi_tiet_gio_hang']=="co")
    {
        $_SESSION['trang_chi_tiet_gio_hang']="huy_bo";
        if(isset($_SESSION['id_them_vao_gio']))
        {
            $so=count($_SESSION['id_them_vao_gio']);
            $trung_lap="khong";
            for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
            {
                if($_SESSION['id_them_vao_gio'][$i]==$_GET['id'])
                {
                    $trung_lap="co";
                    $vi_tri_trung_lap=$i;
                    break;
                }
            }
            if($trung_lap=="khong")
            {
                $_SESSION['id_them_vao_gio'][$so]=$_GET['id'];
                $_SESSION['sl_them_vao_gio'][$so]=$_GET['so_luong'];
            }
            if($trung_lap=="co")
            {
                $_SESSION['sl_them_vao_gio'][$vi_tri_trung_lap]=$_SESSION['sl_them_vao_gio'][$vi_tri_trung_lap]+$_GET['so_luong'];
            }
        }
        else
        {
            $_SESSION['id_them_vao_gio'][0]=$_GET['id'];
            $_SESSION['sl_them_vao_gio'][0]=$_GET['so_luong'];
        }
    }

    $gio_hang="khong";
    if(isset($_SESSION['id_them_vao_gio']))
    {
        $so_luong=0;
        for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
        {
            $so_luong=$so_luong+$_SESSION['sl_them_vao_gio'][$i];
        }
        if($so_luong!=0)
        {
            $gio_hang="co";
        }
    }
  
    echo "Giỏ hàng";
    echo "<br>";
    echo "<br>";
    if($gio_hang=="khong")
    {
        echo "Không có sản phẩm trong giỏ hàng";
    }
    else
    {
        echo "<form action='' method='post' >";
        echo "<input type='hidden' name='cap_nhat_gio_hang' value='co' > ";
        echo "<table>";
            echo "<tr>";
                echo "<td width='200px' >Tên</td>";
                echo "<td width='150px' >Số lượng</td>";
                echo "<td width='150px' >Đơn giá</td>";
                echo "<td width='170px' >Thành tiền</td>";
            echo "</tr>";
            $tong_cong=0;
            for($i=0;$i<count($_SESSION['id_them_vao_gio']);$i++)
            {
          
                $tv="select id,ten,gia from san_pham where id='".$_SESSION['id_them_vao_gio'][$i]."'";
                $tv_1=mysql_query($tv);
                $tv_2=mysql_fetch_array($tv_1);
              
                $tien=$tv_2['gia']*$_SESSION['sl_them_vao_gio'][$i];
                $tong_cong=$tong_cong+$tien;
                $name_id="id_".$i;
                $name_sl="sl_".$i;
                if($_SESSION['sl_them_vao_gio'][$i]!=0)
                {
                echo "<tr>";
                    echo "<td>".$tv_2['ten']."</td>";
                    echo "<td>";
                    echo "<input type='hidden' name='".$name_id."' value='".$_SESSION['id_them_vao_gio'][$i]."' >";
                    echo "<input type='text' style='width:50px' name='".$name_sl."' value='". $_SESSION['sl_them_vao_gio'][$i]."' > ";
                    echo "</td>";
                    echo "<td>".$tv_2['gia']."</td>";
                    echo "<td>".$tien."</td>";
                echo "</tr>";
                }
            }  
            echo "<tr>";
                echo "<td>&nbsp;</td>";
                echo "<td><input type='submit' value='Cập nhật' > </td>";
                echo "<td>&nbsp;</td>";
                echo "<td>&nbsp;</td>";
            echo "</tr>";  
        echo "</table>";
        echo "</form>";
        echo "<br>";
        echo "Tổng giá trị đơn hàng là : ".$tong_cong." VNĐ";
        include("chuc_nang/gio_hang/bieu_mau_mua_hang.php");
    }
  
?>