Kết nối

Tạo nhiều form, nhiều nút submit trong 1 form bằng PHP

1.446 lượt xem 

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.

<html>
<body>
 
<form action="dammio1.php" method="get">
Tên: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

<form action="dammio2.php" method="get">
Tên: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
 
</body>
 
</html>

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.

<?php

if (isset($_GET["name"])) echo $_GET["name"] . '<br />'; 
if (isset($_GET["email"])) echo $_GET["email"];

?>

Tạo nhiều nút submit trong cùng 1 form

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.

<html>
<body>
 
<form method="get">
<h2>Ví dụ 2 nút submit 1 form --- dammio.com</h2>
Tên: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="btnSubmit" id="btnSubmit" value="Action1" />
<input type="submit" name="btnSubmit" id="btnSubmit" value="Action2" />
</form>

<?php

if (isset($_GET['btnSubmit'])) // Kiểm tra nút có giá trị dữ liệu
{
	if($_GET['btnSubmit'] == 'Action1') 
	{
		echo 'Đây là nút Submit 1';
		//Thực hiện đoạn mã tiếp theo --- dammio.com
	}

	if($_GET['btnSubmit'] == 'Action2') 
	{	
		echo "Đây là nút Submit 2";
		//Thực hiện đoạn mã tiếp theo
	}
}
?>
</body>
</html>

Ý 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é!

Bình luận Facebook

Để lại bình luận

avatar
1000
  Theo dõi  
Thông báo của