如何从 Blade 格式 HTML 将 PHP 变量传递给 JavaScript 函数
Posted
技术标签:
【中文标题】如何从 Blade 格式 HTML 将 PHP 变量传递给 JavaScript 函数【英文标题】:How to pass PHP variable to JavaScript function from Blade format HTML 【发布时间】:2015-05-10 07:48:48 【问题描述】:我正在为我的 html 使用 Laravel Blade 格式,并且我正在将多个 php 变量传递给 javascript 函数。 问题是传递给 JavaScript 函数的变量可能有特殊字符。
我希望 JavaScript 函数如下:
jsFunction("argument1","argument2","argument3")
我得到了什么:
jsFunction('argument1','argument2','argument3')
我的 Blade 格式代码是:
<a href="#" onclick="displayBannerInvoice('$bannerProperty->property_id',' $bannerProperty->id ','$bannerProperty->end_date','$bannerProperty->no_of_days','$bannerProperty->total','$bannerProperty->vat_percentage')"></a>
【问题讨论】:
不要使用onclick
和在这种情况下非常脆弱且容易出错的字符串连接,而是考虑 json_encode
输入数据并将结果存储在 JavaScript 变量中。然后您的click
事件处理程序由addEventListenter
或...设置可以轻松读取数据。
@Vohuman 你能举个例子吗?
请参考this question。
将您的 onclick 更改为:onlick='' 而不是 onclick="" 所以它将是 onclick='function("$variable", "$variable" )'
【参考方案1】:
我尝试了很多语法,终于解决了这个问题。 这是你的答案:
jsFunction("$var1"",""$var2")
【讨论】:
【参考方案2】:您可以使用以下语法在 laravel Blade 中显示 php 变量:
!! $someVar !!
示例:
console.log( !! $someVar !! );
【讨论】:
【参考方案3】:这是我如何做的一个例子。我有一个带有更新按钮的表单,它调用了一个 JavaScript 函数。
!! Form::button('Update', array('class' => 'btn btn-success', 'onClick' => 'updateTeamName(' . $team_id . ')')) !!
我将 $team_id 变量(通过控制器方法传递给视图)传递给 JavaScript 函数。
希望这会有所帮助。
【讨论】:
【参考方案4】:最好的办法是不要重新发明***并尝试搜索:)
github上已经有一个包https://github.com/laracasts/PHP-Vars-To-Js-Transformer
它完全符合您的要求。它适用于 Laravel 5 和 Laravel 4。
【讨论】:
以上是关于如何从 Blade 格式 HTML 将 PHP 变量传递给 JavaScript 函数的主要内容,如果未能解决你的问题,请参考以下文章
使用 createElement 和 render 函数从 .blade.php 文件将道具传递给 vue 实例
如何在 Visual Studio Code 中使用 HTML 标记格式化 PHP 文件?
Laravel Blade @include .html 文件