2016-12-15 67 views
0

我與Laravel和Ajax的工作通過URL來獲取數據,我有這樣一句:Laravel&Ajax:發送特定的URL來獲取數據?

Route::get('providers/{providers}','[email protected]');

我控制器上函數返回我一個特定ID的所有供應商,這工作得很好,但我需要在我選擇輸入,以填充這個數據,我目前得到這樣的:

$(document).ready(function(){ 
$('#providers_types_id').change(function(event){ 
    $.get("providers/"+event.target.value+"",function(response,provider){ 
    $('#providers_id').empty(); 
    for(i=0; i<response.length; i++){ 
     $("#providers_id").append("<option value='"+response[i].id+"'>"+response[i].company+"</option>"); 
    } 
    }); 
    }); 
}); 

所以,我有麻煩的網址發送獲取數據,我需要發送這樣的:

http://myapp.local/providers/1 

但我不知道爲什麼它發送當前的URL與我的網址連接起來:

http://myapp.local/prices/3/providers/1 

顯然,我得到404錯誤,我怎麼可以只發送第一個URL,讓我的數據? 對不起我的英文不好!

+0

不,我試了很多,但idk它連接我的網址與當前http://myapp.local/prices/3/ – maudev

回答

2

只需添加一個「/」在URL開始

$.get("/providers/"+event.target.value+"",function(response,provider){ 
    $('#providers_id').empty(); 
    for(i=0; i<response.length; i++){ 
     $("#providers_id").append("<option value='"+response[i].id+"'>"+response[i].company+"</option>"); 
    } 
    }); 
    }); 
+0

哇!它就像一個魅力!非常感謝你,我不知道它非常簡單 – maudev

0

我認爲你更好的解決辦法就在$之前的命名你的路線

Route::get('providers/{providers}','[email protected]')->name('anything'); 

而在你的js文件獲得()把下面的url變量

var url = '{{ route('anything', ['providers'=>'']) }}'+'/'+event.target.value; 

然後使用這個URL在$獲得()

$.get(url, function(response,provider){ 

    // Your code ... 

});