Sau đây mình sẽ đi luôn vào hướng dẫn làm sao để tạo được một Submit form đăng nhập dùng PHP và jQuery thỏa mãn các yêu cầu:
- Gửi dữ liệu đến trang xử lý dữ liệu.
- Không cần load lại trang
Trong bài hướng dẫn này mình sẽ tạo một form đăng nhập dùng jQuery Ajax và PHP.
Bước 1: Tạo mẫu đăng nhập HTML
Tạo một mẫu đăng nhập bằng html như sau (Mình sử dụng luôn một mẫu Bootstrap 4 –Lấy ở đây):
Ví dụ
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Jekyll v3.8.5">
<title>Signin Template · Bootstrap</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
</style>
<!-- Custom styles for this template -->
<link href="signin.css" rel="stylesheet">
</head>
<body class="text-center">
<form class="form-signin" method="post" id="loginform">
<img class="mb-4" src="/docs/4.3/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72">
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
<label for="inputEmail" class="sr-only">Email address</label>
<input type="email" name="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit" id="btnSubmit">Sign in</button>
<p class="mt-5 mb-3 text-muted">© 2017-2019</p>
</form>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
Chú ý:Đặt ID cho các nơi quan trọng cần lấy dữ liệu như email, mật khẩu và nút submit
Bước 2: Sử dụng thư viện JQuery
Sử dụng 1 thư viện jQuery mới nhất chèn vào phần footer của website. ( Ở mẫu trên dòng số 50 mình đã chèn vào sẵn nhé, vì vậy nếu các bạn dùng mẫu trên thì không cần chèn thêm)
Ví dụ
<!-- JQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
Bước 3: Triển khai Mã JS
Viết code JS để thực hiện việc kiểm tra dữ liệu khi bạn click nút Submit, nếu dữ liệu thỏa mãn điều kiện thì sẽ gửi lên trang xử lý dữ liệu.
Ví dụ
<script type="text/javascript">
$(document).ready(function()
{
//khai báo nút submit form
var submit = $("#btnSubmit");
//khi thực hiện kích vào nút Sign in
submit.click(function()
{
//khai báo các biến
var email = $("#inputEmail").val(); //lấy giá trị input của email
var password = $("#inputPassword").val(); //lấy giá trị input mật khẩu
//kiểm tra xem bạn đã nhập email chưa
if(email == ''){
alert('Vui lòng nhập email của bạn');
return false;
}
//kiểm tra xem bạn đã nhập mật khẩu chưa
if(password == ''){
alert('Vui lòng nhập mật khẩu');
return false;
}
//Lấy dữ liệu trong form login
var data = $('form#loginform').serialize();
//Sử dụng hàm $.ajax()
$.ajax({
type : 'POST', //kiểu post
url : 'submit.php', //gửi dữ liệu sang trang submit.php
data : data,
success : function(data)
{
if(data == 'false')
{
alert('Sai Email hoặc mật khẩu');
}else{
alert('Đăng nhập thành công!');
// Xử lý sau khi đăng nhập thành công
}
}
});
return false;
});
});
</script>
Bước 4: Triển khai mã PHP xử lý dữ liệu
Viết code php của trang submit.php để xử lý dữ liệu gửi đến từ code js bên trên
Ví dụ
<?php
if($_POST)
{
$email = trim($_POST['email']);
$password = trim($_POST['password']);
//nếu đăng nhập đúng
if($email == 'admin@vzn.vn' && $password == '123456')
{
echo 'Thành công';
}else{
//nếu đăng nhập sai
echo 'false';
}
}
?>
Trên đây là ví dụ đơn giản để các bạn có thể hiểu cách đăng nhập dùng jQuery Ajax kết hợp với PHP.
Chúc các bạn thành công