2016-11-18 103 views
1

我有一個視圖,我使用blade和jquery.datatables。 從BD填充數據後,我想獲取併發送選定的行值。 爲此,我使用ajax請求創建了一個jQuery代碼。Laravel動作控制器不被從ajax請求調用

$('#enviar').click(function(e){ 
e.preventDefault(); 

var table = $('#tabelaContactos').DataTable(); 
var rows = $('tr.selected'); 
var rowData = table.rows(rows).data(); 

var dataArr = []; 
$.each($(rowData),function(key,value){ 
    //getting the 3 column 
    dataArr.push(value[2]); 

}); 

$.ajax({ 
    url:'{{ route("criarSms") }}', 
    data: {'dados':dataArr}, 
    type:'GET',  
    success:function(msg) 
    { 
     $("#numeroT").text(msg); 
    } 
}); 

});

之後,我定義了一條路由到我的控制器動作,它將響應ajax請求。

Route::get('mensagem/createMessage','[email protected]')->name('criarSms'); 

這裏發生了兩件事情,第一個我的控制器動作沒有被調用,第二個響應總是同一個視圖。

回答

0

終於解決了。 問題是由於路線的順序。

Route :: get('mensagem/{id}','MensagemController @ index') - > name('envio'); Route :: get('mensagem/createMessage','MensagemController @ createMessage') - > name('criarSms');

我不得不在同一個控制器的索引方法的途徑,不知道爲什麼,但laravel使用這條路線始終,即使我稱之爲「criarSms」的「envio」之後定義路線。

我改變了順序,並正在工作。

Route::get('mensagem/createMessage','[email protected]')->name('criarSms'); 

路線::得到( 'mensagem/{ID}', 'MensagemController @索引') - >名稱( 'envio');