如何从 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 函数的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 中的 Blade 模板与普通 php

使用 createElement 和 render 函数从 .blade.php 文件将道具传递给 vue 实例

如何在 Visual Studio Code 中使用 HTML 标记格式化 PHP 文件?

Laravel Blade @include .html 文件

将原始 html 从 Vue 返回到 Laravel Blade

Laravel Blade html 图片