Bonjour,
Je continue mon apprentissage de Laravel, j'en suis arrivé à AJAX.
J'ai une question par rapport au code ci-dessous :
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part url: 'tasks',
Je connais bien ajax avec PHP (sans framework), mais ici, c'est quoi qui est appelé ? le controller ? le model ou autre ?
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 $(document).ready(function() { $("#btn-add").click(function() { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ type: 'POST', url: 'tasks', data: { task: $("#frmAddTask input[name=task]").val(), description: $("#frmAddTask input[name=description]").val(), }, dataType: 'json', success: function(data) { $('#frmAddTask').trigger("reset"); $("#frmAddTask .close").click(); window.location.reload(); }, error: function(data) { console.log(data); var errors = $.parseJSON(data.responseText); $('#add-task-errors').html(''); $.each(errors.messages, function(key, value) { $('#add-task-errors').append('<li>' + value + '</li>'); }); $("#add-error-bag").show(); } }); }); $("#btn-edit").click(function() { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ type: 'PUT', url: 'tasks/' + $("#frmEditTask input[name=task_id]").val(), data: { task: $("#frmEditTask input[name=task]").val(), description: $("#frmEditTask input[name=description]").val(), }, dataType: 'json', success: function(data) { $('#frmEditTask').trigger("reset"); $("#frmEditTask .close").click(); window.location.reload(); }, error: function(data) { var errors = $.parseJSON(data.responseText); $('#edit-task-errors').html(''); $.each(errors.messages, function(key, value) { $('#edit-task-errors').append('<li>' + value + '</li>'); }); $("#edit-error-bag").show(); } }); }); $("#btn-delete").click(function() { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ type: 'DELETE', url: 'tasks/' + $("#frmDeleteTask input[name=task_id]").val(), dataType: 'json', success: function(data) { $("#frmDeleteTask .close").click(); window.location.reload(); }, error: function(data) { console.log(data); } }); }); }); function addTaskForm() { $(document).ready(function() { $("#add-error-bag").hide(); $('#addTaskModal').modal('show'); }); } function editTaskForm(task_id) { $.ajax({ type: 'GET', url: 'tasks/' + task_id, success: function(data) { $("#edit-error-bag").hide(); $("#frmEditTask input[name=task]").val(data.task.task); $("#frmEditTask input[name=description]").val(data.task.description); $("#frmEditTask input[name=task_id]").val(data.task.id); $('#editTaskModal').modal('show'); }, error: function(data) { console.log(data); } }); } function deleteTaskForm(task_id) { $.ajax({ type: 'GET', url: 'tasks/' + task_id, success: function(data) { $("#frmDeleteTask #delete-title").html("Delete Task (" + data.task.task + ")?"); $("#frmDeleteTask input[name=task_id]").val(data.task.id); $('#deleteTaskModal').modal('show'); }, error: function(data) { console.log(data); } }); }
Voici quelques bouts de code :
TaskController.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', [ 'uses' => 'TasksController@index', 'as' => 'tasks.index', ]); Route::group(['prefix' => 'tasks'], function () { Route::get('/{id}', [ 'uses' => 'TasksController@show', 'as' => 'tasks.show', ]); Route::post('/', [ 'uses' => 'TasksController@store', 'as' => 'tasks.store', ]); Route::put('/{id}', [ 'uses' => 'TasksController@update', 'as' => 'tasks.update', ]); Route::delete('/{id}', [ 'uses' => 'TasksController@destroy', 'as' => 'tasks.destroy', ]); });
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 <?php namespace App\Http\Controllers; use App\Task; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class TasksController extends Controller { public function index(Request $request) { $tasks = Task::orderBy('id', 'desc')->paginate(5); return view('tasks')->with('tasks',$tasks); } public function store(Request $request) { $validator = Validator::make($request->input(), array( 'task' => 'required', 'description' => 'required', )); if ($validator->fails()) { return response()->json([ 'error' => true, 'messages' => $validator->errors(), ], 422); } $task = Task::create($request->all()); return response()->json([ 'error' => false, 'task' => $task, ], 200); } public function show($id) { $task = Task::find($id); return response()->json([ 'error' => false, 'task' => $task, ], 200); } public function update(Request $request, $id) { $validator = Validator::make($request->input(), array( 'task' => 'required', 'description' => 'required', )); if ($validator->fails()) { return response()->json([ 'error' => true, 'messages' => $validator->errors(), ], 422); } $task = Task::find($id); $task->task = $request->input('task'); $task->description = $request->input('description'); $task->save(); return response()->json([ 'error' => false, 'task' => $task, ], 200); } public function destroy($id) { $task = Task::destroy($id); return response()->json([ 'error' => false, 'task' => $task, ], 200); } }
Partager