Làm việc với form

Khi lập trình php thì làm việc với form, xử lý các dữ liệu từ form như $_POST, $_GET, $_FILES, cách truyền vào các biến và lấy chúng từ các phương thức post hay get là công việc thướng xuyên
  • 11:04 25/11/2016
  • Kỳ Nhân
  • 0 Bình luận
  • 681

- Form có tác dụng gì? Trong code html thẻ form được tạo ra dùng để xử lý các trường thông tin cần thiết để người sử dụng nhập giá trị vào và ta lấy các giá trị đó mà xử lý.

- Cú pháp html thẻ form có dạng

<form method="post" action="index.php" enctype="multipart/form-data">
</form>
  • method: các bạn có thể điền post hay get
  • action: đường dẫn đến file xử lý trên dự án như index.php hoặc localhost/php/test.php chẳng hạn
  • enctype: khai báo giá trị form dữ liệu có thể upload file hoặc hình ảnh lên server

- Trên là một số thuộc tính cơ bản của thẻ form, các bạn có thể thêm các thuộc tính class hay id cũng được.

- Các trường trong thẻ form đa dạng như input, select, textarea...

- Cú pháp thẻ input có dạng như sau:

<input type="text" name="ten" value="gia_tri" >
  • type: có các kiểu như text, file, number, checkbox, password, radio... và nhiều nữa tuy nhiên mới liệt kệ một số cần dùng. Các bạn có thể search google từ khóa input html type
  • value: Giá trị của input đó. Ví dụ input trên có value là gia_tri thì khi form được submit thì giá trị của input name là gia_tri
  • name: tên của input các trường trong form, cần thiết để lấy dữ liệu khi submit form

- Cú pháp thẻ select

<select name="ten_select">
<option value="">Tên option 1</option>
<option value="1">Tên option 2</option>
</select>

- Cú pháp thẻ textarea

<textarea rows="5" name="title_vn">Làm việc với form</textarea>
  • rows: hiển thị số dòng để hiển thị văn bản khi gỏ, nếu quá số dòng thì hiển thị thanh cuộn
  • name: tên thuộc tính

- Sau khi tìm hiểu một số thẻ sử dụng trong form. Nhận thấy thuộc tính name là phải yêu cầu tồn tại với toàn bộ các thẻ

- Cách khởi tạo form

+ Ví dụ khởi tạo form đăng nhập gồm 2 trường thông tin là username và password

<form method="post" action="index.php" enctype="multipart/form-data">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Send">
</form>

- Tìm hiểu phương thức post và get trong form

- Trong form có 2 dạng là post và get.

  • Phương thức truyền biến kiểu post là khi truyền dạng ẩn, không thể thấy được giá trị biến, chỉ có thẩ lấy bằng code.
  • Phương thức truyền biến kiểu get là khi truyền dạng hiển thị trên đường dẫn web. Theo ví dụ trên nếu truyền dạng get và submit thì đường dẫn như sau: tenmien/index.php?username=gia_tri_nhap&password=gia_tri_nhap

Vậy khi nào dùng post khi nào dùng get? form post thường dùng để xử lý các thông tin có tầm bí mật, không thể cho người xem biết nhằm bảo mật, phương thức get thường dùng truyền biến để làm các tìm kiếm dựa vào điều kiện, vì các biến không sợ bị nhìn thấy, vì nhìn thấy cũng không gây hại gì.

- Cách lấy biến bằng php

Theo ví dụ trên sẽ truyền biến vào file index.php và để check khi nào có post submit thì ta lấy biến.

- Cách lấy như sau:

- Lấy biến bằng phương pháp get

echo $_GET['username'];

- Lấy biến bằng phương pháp post

echo $_POST['username'];

- Lấy biến bằng phương pháp request. Cách này sài chung cho 2 phương thức của form là post và get

echo $_REQUEST['username'];

- Lấy ví dụ trên, hàm kiểm tra khi form submit và in ra là

<?php 
if($_POST) {
echo $_POST['username'];
echo $_POST['username'];
}
?>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Send">
</form>

- Làm việc với input dạng file. Ví dụ có file index.php dạng

<form method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Send">
</form>

Sau khi submit form trên. Để lấy được giá trị của file mà mình chọn ta dùng hàm

echo $_FILES['ten_input']['phan_mo_rong'];

- Hàm $_FILES rất dặc biệt, không như các dạng như $_POST, $_GET, $_REQUEST. Khi có submit 1 file nào thì biến file sẽ lấy được giá trị đó theo dạng mảng

[file] => Array
(
    [name] => MyFile.jpg
    [type] => image/jpeg
    [tmp_name] => /tmp/php/php6hst32
    [error] => UPLOAD_ERR_OK
    [size] => 98174
)

- Như trên muốn in ra tên file nhập vào ta dùng hàm

echo $_FILES['file']['name'];

- Các bạn cần trường nào in ra trường đó thôi