Menu-ngang

☰ MENU

28/02/2023

Bài 3. Xử lý FORM trong PHP

Form là gì?

Khi bạn lên mạng và đăng ký tài khoản hoặc đăng nhập ở một website, thì biểu mẫu mà các bạn điền vào để đăng ký hoặc đăng nhập ở đây chính là form.
Form được sử dụng để lấy thông tin của người dùng nhập vào và gửi lên server để xử lý. Hình bên dưới tôi lấy ở trên mạng phác họa một cách cụ thể quy trình xử lý form trong PHP.

  • form trong HTML được tạo ra bằng thẻ <form>, bên trong form đó nó chứa một hoặc nhiều phần tử để nhập liệu gọi là các điều khiển (control), có nhiều loại điều khiển như:

Hầu hết các control (điều khiển) để người dùng nhập thông tin, dữ liệu được tạo ra bằng thẻ HTML <input> và đi cùng nó thường là phần tử <label> để tạo ra nhãn (tiêu đề) cho control.


Thẻ <form>, tạo web form đầu tiên

Để tạo ra HTML Form thì dùng đến thẻ <form>, sau đó nội dung trong thẻ trình bày các HTML và các phần tử là điều khiển (control) có trong form.

Cú pháp:

<form action="<url>" method="post">

  <!--Các mã HTML, các phần tử trong form -->

</form>

    Thẻ <form> cơ bản có hai thuộc tính cần lưu tâm là actionmethod:

    Thuộc tính action trong form: thuộc tính để thiết lập URL sẽ nhận dữ liệu, là địa chỉ mà dữ liệu của form gửi đến (submit đến, post đến). Thiếu tham số này thì action bằng URL đang truy cập (tức gửi thông tin form đến server theo địa chỉ đang truy cập). Web server nhận được dữ liệu, xử lý và trả về nội dung nào đó.

    Thuộc tính method trong form: thuộc tính để thiết lập HTTP Method, xem thêm HTTP Request Message thường có giá trị bằng get hoặc post. Nếu không viết thuộc tính này thì method mặc định của form là get

    Sử dụng method="get" thì khi submit dữ liệu được biểu diễn (encoding) thông qua URL (người dùng thấy rõ dữ liệu trên thanh địa chỉ trình duyệt khi nó gửi đi). Sử dụng method="post" thì khi submit biểu diễn trong nội dung của Http Request gửi đến Server và là ẩn với người dùng. Sử dụng post an toàn hơn.

BÀI TẬP THỤC HÀNH

File: form.php

<html>
    <header>
        <title>Thông tin học sinh</title>
    </header>
    <body>
    <form action="xu-ly-form.php" method="post">
        <table>
            <tr>
                <td colspan="2" style="text-align: center;">THÔNG TIN HỌC SINH</td>
            </tr>
            <tr>
                <td>Họ tên:</td>
                <td><input type="text" name="txtHoTen"/></td>
            </tr>
            <tr>
                <td>Giới tính:</td>
                <td>
                    <input type="radio" name="radGioiTinh" value="1"/>Nam
                    <input type="radio" name="radGioiTinh" value="0"/>Nữ
                </td>
            </tr>
            <tr>
                <td>Ngày sinh:</td>
                <td><input type="text" name="txtNgaySinh"/></td>
            </tr>
            <tr>
                <td>Địa chỉ:</td>
                <td><input type="text" name="txtDiaChi"/></td>
            </tr>
            <tr>
                <td>Quốc tịch:</td>
                <td>
                    <select name="QuocTich">
                        <option value="VietNam">Việt Nam</option>
                        <option value="Lao">Lào</option>
                        <option value="ThaiLan">Thái Lan</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Địện thoại:</td>
                <td><input type="text" name="txtDienThoai"/></td>
            </tr>
            <tr>
                <td>Sở thích:</td>
                <td>
                    <input type="checkbox" name="cheNhac" value="Nhac"/> Nhạc
                    <input type="checkbox" name="cheDuLich" value="DuLich"/> Du lịch
                    <input type="checkbox" name="cheXemPhim" value="XemPhim"/> Xem phim
                </td>
            </tr>
            <tr>
                <td>Nội dung khác:</td>
                <td>
                <textarea name="txtarea" rows="10" col="400">  
                </textarea>
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center;">
                    <input type="submit" name="Goi" value="Gởi" size="12px"/>
                </td>
            </tr>
        </table>
    </form>
    </body>
</html>



Kết quả sau khi chạy file form.php



File: xu-ly-form.php

<?php
if (isset($_POST['Goi']))
{
    //Lấy dữ liệu từ file form.php gởi đến
    $hoTen = $_POST['txtHoTen'];
    $gioiTinh = $_POST['radGioiTinh'];
    $ngaySinh = $_POST['txtNgaySinh'];
    $diaChi = $_POST['txtDiaChi'];
    $quocTich = $_POST['QuocTich'];
    $dienThoai = $_POST['txtDienThoai'];
    $nhac = $_POST['cheNhac'];
    $duLich = $_POST['cheDuLich'];
    $xemPhim = $_POST['cheXemPhim'];
    $ndKhac = $_POST['txtarea'];
   
    echo '<p>THÔNG TIN HỌC SINH BẠN VỪA NHẬP<p>';
   
    #Xử lý học tên
    echo 'Họ và tên: ' .$hoTen. '<br>';
   
    #Xử lý giới tính
    if ($gioiTinh == 0)
        echo 'Giới tính: Nữ<br>';
    else
        echo 'Giới tính: Nam<br>';
   
    #Xử lý ngày sinh
    echo 'Ngày sinh: ' .$ngaySinh. '<br>';

    #Xử lý địa chỉ
    echo 'Địa chỉ: ' .$diaChi. '<br>';

    #Xử lý quốc tịch
    echo 'Quốc tịch: ';
    if ($quocTich == 'VietNam')
        echo 'Việt Nam<br>';
    elseif ($quocTich == 'Lao')
        echo 'Lào<br>';
    else
        echo 'Thái Lan<br>';

    #Xử lý sở thích
    echo 'Sở thích: ';
    if ($nhac == 'Nhac')
        echo 'Nhạc; ';
    if ($duLich == 'DuLich')
        echo 'Du lịch; ';
    if ($xemPhim == 'XemPhim')
        echo 'Xem phim; ';
    #Xử lý nội dung khác
    echo '<br>Nội dung khác: ' .$ndKhac. '<br>';

    #Xử lý về lại trang form.php
    echo "<p><a href='form.php'> Về lại trang Thông tin học sinh</a>";
}
?>

Kết quả sau khi chạy file xu-ly-form.php