引号过多 - 如何在不关闭它们的情况下回应它

时间:2014-04-28 09:27:10

标签: php html

基本上我想把我的扰流器放在回声中,但由于引号让我感到困惑,不能让它起作用,哈哈。

echo "<input class='spoilerbutton' type='button' value='Register' onclick='this.value=this.value=='Register'?'Cancel':'Register';'><div class='spoiler'><div>woooohoo hide this text</div></div>";

正如您所看到的那样,注册&#39;?&#39;取消&#39;部分,有引号相互关闭。

我怎么能以最简单的方式解决这个问题?我太困惑了,哈哈。

3 个答案:

答案 0 :(得分:3)

如果可以提供帮助,请不要将HTML放在PHP字符串中。把它翻出来。

if (somecondition) {
    ?>
    <input 
        class='spoilerbutton' 
        type='button' 
        value='Register' 
        onclick="this.value=this.value=='Register'?'Cancel':'Register';">
    <div class='spoiler'>
        <div>woooohoo hide this text</div>
    </div>
    <?php
} else {

}

就此而言,如果可以提供帮助,请不要将JavaScript放在HTML属性中。

<input 
    class='spoilerbutton' 
    type='button' 
    value='Register'>
<script>
     var input = document.querySelector('input.spoilerbutton')l
     input.addEventListener('click', toggleValue);
     function toggleValue(evt) {
         this.value=this.value=='Register'?'Cancel':'Register';
     }
</script> 

答案 1 :(得分:2)

你可以像这样转义引号

echo "<input class='spoilerbutton' type='button' value='Register' onclick='this.value=this.value==\"Register\"?\"Cancel\":\"Register\";'><div class='spoiler'><div>woooohoo hide this text</div></div>";

答案 2 :(得分:1)

你也有heredoc替代品。

echo <<<EOHTML <input class='spoilerbutton' type='button' value='Register' onclick='this.value=this.value=="Register"?"Cancel":"Register";'><div class="spoiler"><div>woooohoo hide this text</div></div> EOHTML;