Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在blade内部使用javascript/jquery变量_Javascript_Php_Jquery_Laravel_Laravel Blade - Fatal编程技术网

在blade内部使用javascript/jquery变量

在blade内部使用javascript/jquery变量,javascript,php,jquery,laravel,laravel-blade,Javascript,Php,Jquery,Laravel,Laravel Blade,我试图在LaravelBlade中使用javascript变量 但我得到了这个错误 使用这个我该怎么做 var activeTab = $("ul#tablist li.active"); var floor = {!! \App\Floor::find(activeTab.attr('id')) !!} 使用未定义的常量activeTab-假定为“activeTab” 不幸的是,blade只是一个输出php的框架。你不需要这样做,你无论如何也不能这样做。这将是一个重大的安全问题 如果您真的需

我试图在LaravelBlade中使用javascript变量

但我得到了这个错误

使用这个我该怎么做

var activeTab = $("ul#tablist li.active");
var floor = {!! \App\Floor::find(activeTab.attr('id')) !!}
使用未定义的常量activeTab-假定为“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\u encode(\App\Floor::find($floorId))
中,但在大多数情况下,这应该可以完成工作


您可能希望从一个
onclick
事件调用post,这样每次选项卡更改时都可以得到新对象。

通过对后端的ajax调用获得所需的发言权。您不应该试图以这种方式将php与jquery混合使用。
$(“ul#tablist li.active”)
不是javascript。这是一个JQuery选择器……您是否在标记中扭曲javascript?如果您提供更多的刀片源代码,就很容易检查出哪里出了问题。只需使用
var floor=activeTab.attr('id')实际问题我可以通过var floor=activeTab.attr('id')获取id;但是我需要使用id获取对象,实际上我可以通过var floor=activeTab.attr('id')获取id;但是我需要使用IDI获取对象如果在DOM呈现之前无法获取
id
,则需要使用ajax并使用
activeTab.attr('id')调用php脚本
作为一个参数,可能更容易解释您想要做什么,就像您在上面尝试做的那样,这是不可能的。实际上,我需要“获取活动”选项卡并使用“动态获取地板对象”。另外还有一个套接字连接,它每秒都在接收数据。我需要检查它是否正确并采取行动。我能看到的最简单的方法是,我可能是错的,因为我没有完全理解您的代码,不看一下,但您可以从地板上抓取所有内容
\App\Floor::findAll
(或类似的东西)并将其作为对象变量存储在javascript中。。。然后你可以用这个id抓取你需要的任何东西谢谢我这样用