我正在为我的HTML使用Laravel Blade格式,并且我将多个PHP变量传递给JavaScript函数。问题是传递给 JavaScript 函数的变量可能有特殊字符。
我希望 JavaScript 函数如下所示:
jsFunction("argument1","argument2","argument3")
我得到什么:
jsFunction('argument1','argument2','argument3')
我的刀片格式代码为:
<a href="#" onclick="displayBannerInvoice('{{$bannerProperty->property_id}}','{{ $bannerProperty->id }}','{{$bannerProperty->end_date}}','{{$bannerProperty->no_of_days}}','{{$bannerProperty->total}}','{{$bannerProperty->vat_percentage}}')"></a>
最好的办法是不要重新发明轮子并尝试搜索:)
github上已经有一个软件包 https://github.com/laracasts/PHP-Vars-To-Js-Transformer
它完全符合您的要求。它适用于Laravel 5以及Laravel 4。
这是我如何做到这一点的一个例子。我有一个带有更新按钮的表单,该按钮调用JavaScript函数。
{!! Form::button('Update', array('class' => 'btn btn-success', 'onClick' => 'updateTeamName(' . $team_id . ')')) !!}
我正在将 $team_id 变量(通过控制器方法传递给视图)传递给 JavaScript 函数。
希望这有帮助。
您可以使用以下语法在 laravel blade 中显示 php 变量:
{!! $someVar !!}
例:
console.log( {!! $someVar !!} );
我尝试了很多语法,最后解决了这个问题。这是你的答案:
jsFunction({{"$var1"}}{{","}}{{"$var2"}})