使用php和jscript进行撇号问题

时间:2013-11-11 08:31:25

标签: javascript php jquery

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

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

4 个答案:

答案 0 :(得分: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/>";

答案 1 :(得分: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>

答案 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/>");