在 blade 中使用 javascript/jquery 变量
Using javascript/jquery variables inside blade
我正在尝试在 laravel blade 中使用 javascript 变量。
但是我收到了这个错误。
我应该如何使用它?
var activeTab = $("ul#tablist li.active");
var floor = {!! \App\Floor::find(activeTab.attr('id')) !!}
Use of undefined constant activeTab - assumed 'activeTab'
不幸的是blade只是一个输出php的框架。你不需要那样做,而且无论如何你也做不到。那将是一个很大的安全问题。
如果你真的需要 floor
使用 @Rohan 建议的方法,javascript 直接:
var floor = activeTab.attr('id');
好的,所以你可以有另一条这样的路线:
Route::post('/getFloorById', [
'uses' => 'YourController@getFloorById',
'as' => 'getFloorById'
]);
然后,在你的控制器中你有方法:
private function getFloorById($segments)
{
$floorId = $segments[1];
return \App\Floor::find($floorId);
}
最后,您需要 javascript 代码:
var floor = $.post('/getFloorById', {"id": activeTab.attr('id')});
这是ajax方法。请记住,您可能需要使用 echo
而不是 return
。您可能需要像这样将代码包装到 json_encode(\App\Floor::find($floorId))
中,但在大多数情况下,这应该可以完成工作。
您可能希望从 onclick
事件中调用 post,这样每次选项卡更改时您都可以获得新对象。
我正在尝试在 laravel blade 中使用 javascript 变量。
但是我收到了这个错误。
我应该如何使用它?
var activeTab = $("ul#tablist li.active");
var floor = {!! \App\Floor::find(activeTab.attr('id')) !!}
Use of undefined constant activeTab - assumed 'activeTab'
不幸的是blade只是一个输出php的框架。你不需要那样做,而且无论如何你也做不到。那将是一个很大的安全问题。
如果你真的需要 floor
使用 @Rohan 建议的方法,javascript 直接:
var floor = activeTab.attr('id');
好的,所以你可以有另一条这样的路线:
Route::post('/getFloorById', [
'uses' => 'YourController@getFloorById',
'as' => 'getFloorById'
]);
然后,在你的控制器中你有方法:
private function getFloorById($segments)
{
$floorId = $segments[1];
return \App\Floor::find($floorId);
}
最后,您需要 javascript 代码:
var floor = $.post('/getFloorById', {"id": activeTab.attr('id')});
这是ajax方法。请记住,您可能需要使用 echo
而不是 return
。您可能需要像这样将代码包装到 json_encode(\App\Floor::find($floorId))
中,但在大多数情况下,这应该可以完成工作。
您可能希望从 onclick
事件中调用 post,这样每次选项卡更改时您都可以获得新对象。