在blade中使用javascript / jquery变量

时间:2017-04-25 11:15:47

标签: javascript php jquery laravel laravel-blade

我试图在laravel blade中使用javascript变量。

但是我收到了这个错误。

我应该怎么做才能使用它?

var activeTab = $("ul#tablist li.active");
var floor = {!! \App\Floor::find(activeTab.attr('id')) !!}
  

使用未定义的常量activeTab - 假设' activeTab'

2 个答案:

答案 0 :(得分:1)

好的,所以你可以有另一条这样的路线:

    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事件调用帖子,以便每次选项卡更改时都会获得新对象。

答案 1 :(得分:0)

不幸的是,blade只是一个输出php的框架。你不需要这样做,但你无论如何都无法做到。这将是一个很大的安全问题。

如果您真的需要floor使用@Rohan建议的内容,请直接使用javascript:

var floor = activeTab.attr('id');