由于传递变量

时间:2015-06-01 18:56:45

标签: javascript php

我正在尝试将一些变量从我的php传递给javascript,并且工作正常,除非我在函数调用中添加特定变量。传递了3个变量,所有变量都与YouTube视频相关。正在从数据库中检索ID,并使用来自youtube api的ID检索另外两个(标题和说明)。

<a href="#" class="list-group-item" id="{{$vidID[$i]}}" onclick="updateVid('{{$vidID[$i]}}', '{{$title[$i]}}', '{{$desc[$i]}}test')">

我正在使用hogan模板,因此{{}}与带有echo的php标签相同。当我将描述变量添加到调用时,似乎只会出现问题。没有它,其他两个工作完全没问题。在做了一些研究之后,它似乎是由一个看不见的角色造成的,但我重新输入了我的代码以确保我的代码不是问题所在。开发人员控制台显示问题发生在描述变量的最后一行,因此似乎正在使用api中的不可见字符检索描述。我只是想用js函数中的描述做一个简单的警报。我该怎样摆脱这个角色?

1 个答案:

答案 0 :(得分:0)

如果没有看到实际值,最明显的问题是内容中的字符会破坏html和/或javascript函数调用。

直接在html中回显变量就像有点棘手,因为你需要为javascript而不是html进行转义。在这种情况下,您可以使用:

... '{{htmlspecialchars(json_encode($desc[$i]), ENT_QUOTES)}}test' ...

json_encode调用可能会在字符串周围为你增加一对双引号。

但是,请注意,将变量转换为javascript的最佳方法是直接在脚本块中执行此操作 - 中间没有html - 在php中使用json_encode。然后你可以确定任何数据都可以毫无问题地传递,你可以用javascript解码它以恢复你的结构(如果是数组和对象)。