我搜索了有关“未终止的字符串文字”语法错误的众多问题,但没有发现任何帮助我...
所以,我有这个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);
始终导致相同的错误。
你看到我的代码或我的思维方式出错了吗?
非常感谢!
答案 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")
。