我搜索了已经问到的关于“未终止的字符串文字”语法错误的许多问题,但是没有发现任何帮助我.
所以,我有一个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:未终止字符串文字“
Wordpress ACF的字段"description-defi“包含了几行带有一些简单引号的文本。c'est,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);
总是导致同样的错误。
你知道我的代码或者我的思维方式可能会错在哪里吗?
非常感谢!
发布于 2017-05-12 08:36:58
the_field()
将输出所选字段的内容。如果您想使用某个字段,则应该使用get_field()
。
请参阅:field/
另外,换行符不会被任何PHP的转义函数转义,如果您的字符串包含换行符,您需要使用以下内容手动转义它们:$myField = str_replace(array("\r\n", "\n"), "<br>", $myField);
。
如果您知道您的数据库将始终使用相同的换行符序列,则可以用该换行符替换array("\r\n", "\n")
。
https://stackoverflow.com/questions/43933011
复制相似问题