2017-02-10 51 views
0

控制器方法我有一個按鈕,在我的數據庫表中切換布爾值。它的工作原理,但每次重新加載頁面,所以我想用AJAX切換它。我不知道如何做一個AJAX post請求,它可以爲控制器提供它需要的ID。這是我到目前爲止有:使用Ajax來實現通過ID

TaskController方法:

{{ Form::open(array('action' => array('[email protected]', $task->id))) }} 
    {{ Form::hidden('_method', 'PATCH') }} 

    @if ($task->completed) 
     {{ Form::button('<span class="glyphicon glyphicon-ok"></span>', array('class'=>'btn btn-danger', 'type'=>'submit')) }} 
    @else 
     {{ Form::button('<span class="glyphicon glyphicon-remove"></span>', array('class'=>'btn btn-danger ajaxSubmit', 'type'=>'submit')) }} 
    @endif 

{{ Form::close() }} 

AJAX是沒有按:用於切換(在這種情況下,ID爲1的第一個任務)

public function updateCompleted($id) 
{ 

    $task = Task::findOrFail($id); 

    if($task->completed) { 
     $task->completed = false; 
    } else { 
     $task->completed = true; 
    } 

    $task->save(); 

    Session::flash('message', 'Task updated!'); 
    return redirect('tasks'); 
} 

按鈕「T工作...

$('.ajaxSubmit').click(function(e) { 
    e.preventDefault(); 
     $.ajax({ 
      url: 'tasks/complete/{id}', 
      type: 'POST', 
      success: function(response) 
      { 
       console.log("working"); 
      } 
     }); 
    }); 

和路由:

Route::patch('tasks/complete/{id}', '[email protected]'); 

如何讓Ajax工作?由於

回答

0

試試這個 與 「身份識別碼」 的ID添加的ID在隱藏輸入例如

$('.ajaxSubmit').click(function(e) { 
    var data = $("#myid").val(); 
e.preventDefault(); 
    $.ajax({ 
     url: '/tasks/complete', 
     type: 'POST', 
     data: data, 
     success: function(response) 
     { 
      console.log("working"); 
     } 
    }); 
    }); 

做到這一點

Route::post('tasks/complete', '[email protected]'); 

不要忘記CSRF。

+0

我試過這個,但現在我收到了「405(方法不允許)」錯誤。由於這是一個補丁請求,我認爲'type'需要'PATCH',所以我試過了,它返回'500(內部服務器錯誤)'。有任何想法嗎? – user3623348

+0

它的crsf可以合理地說,谷歌它總是發生與ajax請求(評論app/http/kernel.php中的crsfmiddlware,看看它是否可以解決這個問題) –