0

我有这段代码,它不起作用,我找不到问题出在哪里?

$texttt = "blabla";
    echo "<div onclick='select(\" page d \' accueil \");'>".$texttt."</div><br/>";
function select(text){
      alert(text);          
}
4

4 回答 4

3

" 正在破坏你的 php 语句

echo "<div onclick=\"select(' page d\' accueil ');\">\"Page d'accueil\"</div><br/>";



function select(text){
      alert(text);          
}

尝试使用addslasheshtmlentities转义文本之间的引号

$texttt = htmlentities(addslashes($text), ENT_QUOTES); 

echo "<div onclick='select(\"$texttt\");'>$texttt</div><br/>";
于 2013-11-11T08:34:30.783 回答
1

PHP 使用单引号。我对 PHP(这是服务器端脚本)使用单引号,对客户端脚本使用双引号,除非它不是强制性的。

echo '<div onclick="select(\'page d\'accueil\');">"Page d\'accueil"</div><br/>';

问题是由单引号引起的d'accueil

我不知道是否可以转义位于另一个转义字符串中的字符串。

可能性:

  • 您可以更改您的语言的语法规则:
    • 影响太多人。
    • 不适用。
  • 您可以更改键入单引号的方式:&#39;在上下文中使用。

我为您输入了一个新代码(效果很好):

<?php
    echo '<div onclick="select(this.innerHTML);">"Page d&#39;accueil"</div><br/>';
?>
<script>
function select(text){
      alert(text);          
}
</script>
于 2013-11-11T08:34:13.890 回答
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>
于 2013-11-11T08:55:18.773 回答
0

您可以使用 heredoc 语法 refreence: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/>");
于 2013-11-11T08:55:48.167 回答