Laravel 8 - AJAX를 사용한 SweetAlert2(간단한 3단계)🍬🍭🧁
SweetAlert2 is a beautiful, customizable, accessible replacement for javascript's pop-up boxes with zero dependencies!
sweetalert2에 대한 자세한 내용은 여기를 참조하십시오.
이제
sweetalert2
에 대해 잘 이해했으므로 시작하겠습니다!1단계: 컨트롤러 생성
다음 명령을 사용하여 사용자 컨트롤러를 만듭니다.
php artisan make:controller UserController
사용자 컨트롤러를 열고 다음 코드를 붙여넣습니다.
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
// all users
public function users()
{
$users = User::all();
return view('users', compact('users'));
}
// delete user
public function delete($id)
{
$delete = User::destroy($id);
// check data deleted or not
if ($delete == 1) {
$success = true;
$message = "User deleted successfully";
} else {
$success = true;
$message = "User not found";
}
// return response
return response()->json([
'success' => $success,
'message' => $message,
]);
}
}
여기에서 우리는 두 개의 함수를 만들었습니다. 하나는 모든 사용자를 가져오기 위한 것이고 다른 하나는 사용자를 삭제하기 위한 것입니다.
2단계: 경로 정의 및 가짜 데이터 삽입
이 두 함수에 대한 경로를 정의해 보겠습니다.
<?php
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
Route::get('users', [UserController::class, 'users']);
Route::post('delete/{id}', [UserController::class, 'delete']);
이제 factory와 seeder를 사용하여 가짜 사용자 데이터를 삽입해 보겠습니다.
\App\Models\User::factory(5)->create(); // 5 fake user data
여기에서 자세히 읽어보세요.
3단계: 블레이드 파일에서 AJAX로 SweetAlert2 설정
users.blade.php
라는 뷰를 만들고 다음 코드를 붙여넣습니다.<!doctype html>
<html lang="en">
<head>
<!-- meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- csrf-token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css">
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<!-- SweetAlert2 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/10.5.1/sweetalert2.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/10.5.1/sweetalert2.all.min.js"></script>
<title>How to Use SweetAlert2 with AJAX in Laravel 8.x</title>
</head>
<body class="container" style="margin-top: 40px;">
<div class="row" style="margin-bottom: 20px;">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h3>Users</h3>
</div>
</div>
</div>
<table class="table table-bordered">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th width="280px">Actions</th>
</tr>
@foreach ($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>
<button class="btn btn-danger" onclick="deleteConfirmation({{$user->id}})">Delete</button>
</td>
</tr>
@endforeach
</table>
<script type="text/javascript">
function deleteConfirmation(id) {
swal.fire({
title: "Delete?",
icon: 'question',
text: "Please ensure and then confirm!",
type: "warning",
showCancelButton: !0,
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel!",
reverseButtons: !0
}).then(function (e) {
if (e.value === true) {
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
$.ajax({
type: 'POST',
url: "{{url('/delete')}}/" + id,
data: {_token: CSRF_TOKEN},
dataType: 'JSON',
success: function (results) {
if (results.success === true) {
swal.fire("Done!", results.message, "success");
// refresh page after 2 seconds
setTimeout(function(){
location.reload();
},2000);
} else {
swal.fire("Error!", results.message, "error");
}
}
});
} else {
e.dismiss;
}
}, function (dismiss) {
return false;
})
}
</script>
</body>
</html>
모든 설정을 마쳤으니 이제 확인해 봅시다!
실행 및 출력 보기
라라벨 프로젝트 실행
php artisan serve
이 경로
http://localhost:8000/users
를 방문하면 다음과 같은 페이지가 표시됩니다.삭제 버튼을 클릭하면 SweetAlert2 확인 상자가 나타납니다:
예 버튼을 클릭하면 AJAX를 통해 데이터가 삭제되고 다음과 같은 확인 메시지가 표시됩니다.
Hurray! We have succesfully created and tested
sweetalert2
, use this on your future projects to make it more beautiful!
Reference
이 문제에 관하여(Laravel 8 - AJAX를 사용한 SweetAlert2(간단한 3단계)🍬🍭🧁), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dalelantowork/laravel-8-sweetalert2-with-ajax-for-beginners-3-easy-steps-1p6d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)