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');