SyntaxError:PHP变量

时间:2017-05-12 08:32:20

标签: javascript php

我搜索了有关“未终止的字符串文字”语法错误的众多问题,但没有发现任何帮助我...

所以,我有这个Javascript函数:

function parametresModal($parametres) {
        document.getElementById('remodalTest').innerHTML = $parametres;
};

然后我在我页面的链接上调用此函数:

<a href="#" onClick='parametresModal("<?php the_field('description-defi'); ?>");'>TEST</a>

这里写的参数是简化的;我实际上想要添加这个Wordpress ACF的功能和HTML标记,但我发现问题出现在这个特定领域(见下文)。

这个“parametresModal”函数应该用它的参数填充下面的div:

<div id="remodalTest">MyDiv</div>

问题是控制台输出

  

“SyntaxError:unterminated string literal”

Wordpress ACF的字段“description-defi”包含一些带有一些简单引号的文本行(例如c ' \ test,l 'éviter,... )。 所以我尝试用几种方法来逃避引号:

$myField = the_field('description-defi');
$myEscape = json_encode($myField);

$myField = the_field('description-defi');
$myEscape = addshlashes($myField);

$myField = the_field('description-defi');
$myEscape = htmlspecialchars($myField);

始终导致相同的错误。

你看到我的代码或我的思维方式出错了吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

the_field()将输出所选字段的内容。如果您想使用字段,则应使用get_field()代替。

请参阅:https://www.advancedcustomfields.com/resources/the_field/

此换行符也不会被PHP的任何转义函数转义,如果您的String包含换行符,则需要使用以下内容手动转义它们:$myField = str_replace(array("\r\n", "\n"), "<br>", $myField);

如果您知道您的数据库将始终使用相同的换行符序列,则可以替换该换行符序列中的array("\r\n", "\n")