2016-12-15 3 views
3

Мне нужно выполнить запрос AJAX в laravel, а url - это конкатенация между методом URL :: Action и целочисленной переменной Javascript.Конкатенация между URL :: action() и переменной Javascript int

Javascript функция в представлении является

function detailMaintenanceVehicle(vehicleId,placa){ 

    var url = "{{ URL::action('[email protected]',["+vehicleId+"]) }}"; 

    console.log(vehicleId); // This prints integer variables 1,2,3.. 
    console.log(url); // This prints a string http://localhost/.../detailMaintenance/+vehicleId+ 

    $.ajax({ 
     url: url, 
     dataType: 'json', 
     type: 'GET', 
     success: function(data) { 
      ... 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      ... 
     } 
    }); 

} 

конкатенации использует имя переменной, то необходимо использовать значение.

// Дает: http://localhost/.../detailMaintenance/+vehicleId+

// Мне нужно: http://localhost/.../detailMaintenance/3 (например)

Пожалуйста, помогите мне. Заранее спасибо!.

ответ

5

Вы можете попробовать, как:

var url = "{{ URL::action('[email protected]', ['vehicleId' => 'vehicleId']) }}"; 

url.replace("vehicleId", vehicleId); 
+0

Он работал, и только в одной строке вар URL = ("{{...}}") заменить (..); –

3

Вы никогда не должны генерировать JS с PHP. Создайте скрытый вход с данными, например:

{!! Form::hidden('url, action('[email protected])) !!} 

Если ваше действие требует идентификатора, просто напишите частичный URL вручную.

А потом получить его в JS:

var url = $("[name='url']") + vehicleId; 
+0

Да, вы правы, в этом случае было более подходящим для моего случая псевдокода. Большое спасибо! –

1

Вы должны создать маршрут для этого контроллера метод так же, как: Route :: любой ('ajaxRequest/{vehicleId}', "DetailMaintenanceController @ getDetailMaintenance") ;

то после нужно изменить в JavaScript, как показано ниже:.

function detailMaintenanceVehicle(vehicleId,placa){ 

var url = "{{ URL::to('ajaxRequest/') }}"+vehicleId; //YOUR CHANGES HERE... 

console.log(vehicleId); // This prints integer variables 1,2,3.. 
console.log(url); // This prints a string http://localhost/.../detailMaintenance/+vehicleId+ 

$.ajax({ 
    url: url, 
    dataType: to'json', 
    type: 'GET', 
    success: function(data) { 
     ... 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     ... 
    } 
}); 

} 
+0

Yest, я использовал его, и это сработало, но теперь мне нужно сделать это с помощью URL :: action. Это же спасибо! –

Смежные вопросы