Reputation: 1101
i'm working with Laravel and Ajax to get data via urls,i have this one:
Route::get('providers/{providers}','ProvidersController@getProviders');
That function on my controller returns me all providers of an specific id, this works fine, but i need to populate this data in my select input, i'm currently getting it like this:
$(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>");
}
});
});
});
So, i'm having troubles sending the url to get data, i need to send this:
http://myapp.local/providers/1
But i don't know why it's sending the currently url concatenated with my url:
http://myapp.local/prices/3/providers/1
Obviously i got 404 error, how i can send only the first url to get my data? Sorry for my bad english !
Upvotes: 0
Views: 352
Reputation:
I think a better solution for you would be naming your route
Route::get('providers/{providers}','ProvidersController@getProviders')->name('anything');
And in your js file just before the $.get() put the following url variable
var url = '{{ route('anything', ['providers'=>'']) }}'+'/'+event.target.value;
Then use this url in $.get()
$.get(url, function(response,provider){
// Your code ...
});
Upvotes: 0
Reputation: 1537
just add a "/" at the start of 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>");
}
});
});
Upvotes: 2