在echo语句中放置onClick操作的语法


Syntax for putting an onClick action in an echo statement

下面onClick属性的正确语法是什么:

    <?php 
    if($_resp['user']) {
    echo '<div class="logo"><a href="http://www.example.com/" onClick="_gaq.push(['_trackEvent', 'Join', 'Home', 'BigButton']);">Link Text</a>';        
 }
    ?>

由于嵌套了双引号和单引号,因此需要用反斜杠转义onClick中的单引号。

echo '<div class="logo"><a href="http://www.example.com/" onClick="_gaq.push([''_trackEvent'', ''Join'', ''Home'', ''BigButton'']);">Link Text</a>';

考虑使用HEREDOC

if ($_resp['user']) {
   echo <<<EOL
<div class="logo"><a href="http://www.example.com/" onClick="_gaq.push(['_trackEvent', 'Join', 'Home', 'BigButton']);">Link Text</a>
EOL;
}

或退出PHP模式:

if ($_resp['user']) { ?>
<div class="logo"><a href="http://www.example.com/" onClick="_gaq.push(['_trackEvent', 'Join', 'Home', 'BigButton']);">Link Text</a>
<?php }

都可以完成工作,并且消除了在生成的html/javascript中转义引号的任何需要

您可以将HTML和PHP混合使用,因此您可能希望简单地将其移出PHP:

<?php 
if($_resp['user']) {
?>
<div class="logo"><a href="http://www.example.com/" onClick="_gaq.push(['_trackEvent', 'Join', 'Home', 'BigButton']);">Link Text</a>
<?       
}
?>