質問編集履歴

3

説明不足な点があり、追記

2021/02/14 01:09

投稿

aki0201
aki0201

スコア5

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,35 @@
26
26
 
27
27
  ```php
28
28
 
29
- <!-- 入力フォーム -->
29
+ <!-- 新規登録 -->
30
+
31
+ <form id="task-form" method="POST" action="{{ route('done_task') }}">
32
+
33
+ @csrf
34
+
35
+ <input type="title" id="title_edit" name="title">
36
+
37
+ <input type="date" id="start_edit" name="start">
38
+
39
+ <input type="color" id="color_edit" name="textColor">
40
+
41
+ <div class="modal-btn">
42
+
43
+ <button class="modal__btn modal__btn-primary" type="submit">登録する</button>
44
+
45
+ <a id="expire-btn" class="modal__btn" data-micromodal-close aria-label="Close this dialog window">キャンセル</a>
46
+
47
+ </div>
48
+
49
+ </form>
50
+
51
+ ```
52
+
53
+ edit_modal.blade.php
54
+
55
+ ```php
56
+
57
+ <!-- 更新 -->
30
58
 
31
59
  <form id="task-form" method="POST" action="{{ route('editEvent') }}">
32
60
 

2

説明不足な点があり、追記

2021/02/14 01:09

投稿

aki0201
aki0201

スコア5

test CHANGED
File without changes
test CHANGED
@@ -26,9 +26,31 @@
26
26
 
27
27
  ```php
28
28
 
29
+ <!-- 入力フォーム -->
30
+
31
+ <form id="task-form" method="POST" action="{{ route('editEvent') }}">
32
+
33
+ @csrf
34
+
35
+ <input type="hidden" id="id" value="" name="id">
36
+
37
+ <input type="title" id="title_edit" name="title" value="">
38
+
39
+ <input type="date" id="start_edit" name="start" value="">
40
+
41
+ <input type="color" id="color_edit" name="textColor" value="">
42
+
43
+ <div class="modal-btn">
44
+
45
+ <button id="task-update" class="modal__btn modal__btn-primary" type="submit">変更する</button>
46
+
29
- <!-- 削除ボタン -->
47
+ <!-- 削除ボタン -->
30
-
48
+
31
- <a href="#" id="delete-task" class="cancel-btn">削除する</a>
49
+ <a href="#" id="delete-task" class="cancel-btn">削除する</a>
50
+
51
+ </div>
52
+
53
+ </form>
32
54
 
33
55
  ```
34
56
 
@@ -144,6 +166,60 @@
144
166
 
145
167
  }
146
168
 
169
+
170
+
171
+ public function editEventDate(Request $request)
172
+
173
+ {
174
+
175
+ $task = DoneTask::find($request->input('id'));
176
+
177
+
178
+
179
+ $task->start = $request->input('start');
180
+
181
+
182
+
183
+ $task->textColor = $request->input('textColor');
184
+
185
+ if(isset($_POST['title']))
186
+
187
+ {
188
+
189
+ $title = implode(',', $_POST['title']);
190
+
191
+ $task->title = $title;
192
+
193
+ }
194
+
195
+
196
+
197
+ $task->save();
198
+
199
+
200
+
201
+ return redirect('/home');
202
+
203
+ }
204
+
205
+ ```
206
+
207
+
208
+
209
+ web.php
210
+
211
+ ```php
212
+
213
+ Route::get('/home', 'DoneTaskController@index');
214
+
215
+ Route::post('/store', 'DoneTaskController@store')->name('done_task');
216
+
217
+ Route::post('/editEventDate', 'DoneTaskController@editEventDate')->name('editEvent');
218
+
219
+ Route::post('/deleteEvent', 'DoneTaskController@deleteEvent')->name('deleteEvent');
220
+
221
+
222
+
147
223
  ```
148
224
 
149
225
  上記の方法だと`info.id`が取得できないので、削除できていないのだと思われますが、代替案がわからない状態です。

1

説明不足の箇所があったため、Controllerと説明文を追加

2021/02/14 01:05

投稿

aki0201
aki0201

スコア5

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,12 @@
13
13
  現在はカレンダーが表示されていて、登録されているイベントをクリックするとモーダル更新用の画面が出てくるようになっています。
14
14
 
15
15
  更新用のモーダルに登録ボタンと削除ボタンを設置して、削除ボタンを押したらデータが削除されるようにしたいです。
16
+
17
+
18
+
19
+ 現在、データを表示させるindexアクションが`ajax`通信の際に`id`を返すようにしているため、更新処理の際は`value`の取得にJSを使用しました。
20
+
21
+ 通常だと`form`タグの`action`属性に`id`を指定し送信すると思うのですが、`id`を渡すことができていないため、どのようにすればいいのかわからない状態です。
16
22
 
17
23
 
18
24
 
@@ -74,6 +80,72 @@
74
80
 
75
81
  ```
76
82
 
83
+ DoneTaskController.php
84
+
85
+ ```php
86
+
87
+ public function index(Request $request)
88
+
89
+ {
90
+
91
+ $user_id = Auth::id();
92
+
93
+
94
+
95
+ if ($request->ajax())
96
+
97
+ {
98
+
99
+ $data = DoneTask::select('id','title', 'start', 'textColor')->where('user_id', $user_id)->get();
100
+
101
+ return response()->json($data);
102
+
103
+
104
+
105
+ }
106
+
107
+
108
+
109
+ return view('home');
110
+
111
+ }
112
+
113
+
114
+
115
+ public function store(Done $request)
116
+
117
+ {
118
+
119
+ $task = new DoneTask;
120
+
121
+ $task->user_id = Auth::id();
122
+
123
+ $task->start = $request->input('start');
124
+
125
+ $task->textColor = $request->input('textColor');
126
+
127
+ if(isset($_POST['title']))
128
+
129
+ {
130
+
131
+ $title = implode(',', $_POST['title']);
132
+
133
+ $task->title = $title;
134
+
135
+ }
136
+
137
+
138
+
139
+ $task->save();
140
+
141
+
142
+
143
+ return redirect('/home');
144
+
145
+ }
146
+
147
+ ```
148
+
77
149
  上記の方法だと`info.id`が取得できないので、削除できていないのだと思われますが、代替案がわからない状態です。
78
150
 
79
151