我有这段代码,这不起作用,我找不到问题在哪里?
$texttt = "blabla";
echo "<div onclick='select(\" page d \' accueil \");'>".$texttt."</div><br/>";
function select(text){
alert(text);
}
答案 0 :(得分:3)
“打破了你的php声明
echo "<div onclick=\"select(' page d\' accueil ');\">\"Page d'accueil\"</div><br/>";
function select(text){
alert(text);
}
尝试使用addslashes
和htmlentities
来转义文字
$texttt = htmlentities(addslashes($text), ENT_QUOTES);
echo "<div onclick='select(\"$texttt\");'>$texttt</div><br/>";
答案 1 :(得分:1)
使用PHP的单引号。我使用PHP的单引号(服务器端脚本)和客户端脚本的双引号,除非它不是强制性的。
echo '<div onclick="select(\'page d\'accueil\');">"Page d\'accueil"</div><br/>';
问题来自d'accueil
中的单引号:
我不知道是否可以转义位于另一个转义字符串中的字符串。
可能性:
'
。我为您输入了一个新代码(效果很好):
<?php
echo '<div onclick="select(this.innerHTML);">"Page d'accueil"</div><br/>';
?>
<script>
function select(text){
alert(text);
}
</script>
答案 2 :(得分:0)
"Page d'accueil"
不需要介于引号之间,因此请将其删除。
使用一种(单引号或双引号)作为第一级引用,将另一种引用到下一级,并保持谨慎。
<? php echo '<div onclick="select(\" page d\' accueil \");">Page d\'accueil</div><br/>'; ?>
<script type="text/javascript">
function select(text){
alert(text);
}
</script>
答案 3 :(得分:0)
你可以使用heredoc语法 参考:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
也可以尝试:
echo json_encode("<div onclick='select(" page d ' accueil ");'>{$texttt}</div><br/>");