Xử lý nhiều form trong php

Khi lập trình và thiết kế giao diện Web, hẳn là bạn sẽ gặp trường hợp yêu cầu thiết kế nhiều form (biểu mẫu) trong 1 trang. Sau đó, khi người dùng submit từng form thì sẽ lấy đúng dữ liệu của form gửi về server để xử lý. Cách giải quyết tình huống này như sau.

Tạo khác thuộc tính action cho mỗi form

Bạn có thể tạo nhiều form, trong đó mỗi form có thuộc tính action khác nhau. Vì vậy khi đó, người dùng nhấn mỗi form sẽ gửi dữ liệu thì về các trang khác nhau.



 
Tên:
E-mail:
Tên:
E-mail:

Bạn có thể thay thế dammio1.php, dammio2.php bằng cách trang .html, .aspx và lấy dữ liệu từ form submit đến các trang này mà bạn muốn. Ví dụ, nội dung dammio1.php để hiển thị thông tin như sau.

'; 
if (isset($_GET["email"])) echo $_GET["email"];

?>

Bạn có thể tạo nhiều nút submit cùng 1 form, nhưng khi đó hãy thiết lập 1 điều kiện if (switch…case) để dò tìm giá trị nút submit đúng cần thực hiện.

Ví dụ tạo 1 trang index.php (.html) như sau.



 

Ví dụ 2 nút submit 1 form --- dammio.com

Tên:
E-mail:

Ý tưởng trong bài cũng có thể áp dụng cho ASP.NET. Ngoài ra, tất nhiên là còn nhiều trường hợp và cách xử lý khác. Nếu bạn có ý kiến thắc mắc hoặc gặp trường hợp khó giải quyết, hãy để lại bình luận để nhận tư vấn nhé!



Biến siêu toàn câu $_GET và $_POST trong PHP được sử dụng để thu thập dữ liệu từ HTML Form.


1. Sử dụng phương thức POST

Ví dụ trang welcome.php thu thập [name] và [email] từ trang index.php.

File: index.php




Name:
E-mail:

File: welcome.php




Welcome 
Your email address is:

Kết quả:

Xử lý nhiều form trong php

Click button [Submit]

Xử lý nhiều form trong php

2. Sử dụng phương thức GET

Ví dụ trang welcome.php thu thập [name] và [email] từ trang index.php.

File: index.php




Name:
E-mail:

File: welcome.php




Welcome 
Your email address is:

Kết quả:

Xử lý nhiều form trong php

Click button [Submit]

Xử lý nhiều form trong php



So sánh phương thức GET & POST

Cả GET và POST tạo một mảng (ví dụ mảng (key => value, key2 => value2, key3 => value3, ...)). Mảng này chứa các cặp khóa/giá trị, trong đó các khóa là tên của các form control và các giá trị là dữ liệu được nhập từ người dùng.

Biến $_GET được xử dụng để xử lý phương thức GET và $_POST được sử dụng để xử lý phương thức POST. Đây là các biến siêu toàn cầu, có nghĩa là chúng luôn có thể truy cập, bất kể phạm vi - và bạn có thể truy cập chúng từ bất kỳ hàm, lớp hoặc tệp nào.

$_GET là một mảng các biến được truyền cho tập lệnh hiện tại thông qua các tham số URL.

$_POST là một mảng các biến được truyền cho tập lệnh hiện tại thông qua phương thức HTTP POST.


Khi nào sử dụng GET?

Thông tin được gửi từ một biểu mẫu có phương thức GET hiển thị cho tất cả mọi người (tất cả các tên và giá trị biến được hiển thị trong URL). GET cũng có giới hạn về lượng thông tin cần gửi. Giới hạn là khoảng 2000 ký tự. Tuy nhiên, vì các biến được hiển thị trong URL, bạn có thể đánh dấu trang. Điều này có thể có ích trong một số trường hợp.

GET có thể được sử dụng để gửi dữ liệu không nhạy cảm.

Lưu ý: Đừng bao giờ sử dụng GET để gửi mật khẩu hoặc thông tin nhạy cảm khác!



Khi nào sử dụng POST?

Thông tin được gửi từ một form có phương thức POST là ẩn với người khác (tất cả các tên/giá trị được nhúng bên trong phần thân của HTTP Request) và không có giới hạn về lượng thông tin cần gửi.

Hơn nữa POST hỗ trợ chức năng nâng cao như hỗ trợ nhập nhị phân nhiều phần trong khi tải tệp lên máy chủ.

Tuy nhiên, vì các biến không được hiển thị trong URL, bạn không thể đánh dấu trang đó.