0
所以我有這個簡單待辦事項列表與ajax調用更新我的數據庫中的字段completed
爲1或0,當我點擊一個李項目。TODO列表更新與AJAX
在我看來,代碼顯然不好,顯然它並不起作用。只有第一次,當我點擊li時,它會更新,但如果我想再次運行它,我需要刷新,因爲data-completed
未更新。我需要jQuery來做到這一點,但我不知道如何根據原始值將數據屬性更新爲1或0。
任何指示如何使這項工作正常將不勝感激。
查看:
<li data-id='{!! $task->id !!}' data-completed='@if($task->completed == '1') 0 @else 1 @endif'>
AJAX調用:
$('li').on('click', function(e){
$.ajax({
url: 'api/tasks/update/'+$(this).data('id')+'/'+$(this).data('completed'),
method: 'GET'
})
});
由於我使用的laravel,這是我的路線:
Route::get('api/tasks/update/{id}/{completed}', function($id, $completed) {
$task = App\Task::find($id);
$task->completed = $completed;
$task->save();
});
謝謝,工程就像一個魅力,除了一件事。通過以上所述,數據庫不會被更新,因爲'completed'的反向應該在ajax調用中傳遞,而不是從數據庫中獲得的值。我試過'data:{completed:!$(this).data('completed')},'但是感嘆號的值是'true'或'false',這很好,但它不會不會像這樣將數據庫中的值設置爲「0」或「1」。有什麼建議麼? – Hardist
我在三元組中添加了將truthy/falsy值轉換爲它們的1/0對應值,這些值應該適合您。您也可以在控制器中執行此操作,但將正確的值發送到控制器而不是將其轉換到控制器會更有意義。 – Samsquanch
非常感謝,我理解三元和PHP中的所有內容,但是當談到JavaScript時,我迷了路。我需要遵循一些教程來更好地理解它:) – Hardist