Search code examples
javascriptlaravellaravel-4

Laravel 4, Pass a variable to route in javascript


How Can I pass the variable (stock.id) return from Ajax response to the route to generate the url to edit a stock

$.ajax({
            url: 'sectors/stocks/' + $(this).data('sector-id'),
            dataType:'json',
            beforeSend:function() {
                $('.stocks_list').html('Loading...');
            }
        })
        .done(function(data) {
            $('.stocks_list').html('<ul>');
            $.each(data, function(index, obj_data) {
                $.each(obj_data.stocks, function(indx, stock) {
                    $('.stocks_list').append('<li><a href="{{route("admin.stocks.edit","'+stock.id+'")}}">' + stock.symbol + ' </a></li>');     
                });
        });
    })

Solution

  • You can first use a placeholder to generate the URL with and then replace that in javascript.

    var url = '{{ route("admin.stocks.edit", ":id") }}';
    url = url.replace(':id', stock.id);
    $('.stocks_list').append('<li><a href="'+url+'">' + stock.symbol + ' </a></li>');