HTML引用与PHP混淆

时间:2012-08-29 16:58:30

标签: php javascript html if-statement

我有一些HTML代码

<?php 
    if($loggedIn){
       echo "<div id='navigation'>
            <ul>
                <li>
                    <a href='javascript:toggleLayer('video');'>Global</a>
                </li>
                <li>
                    <a href='javascript:toggleLayer('info');'>About</a>
                </li>
                <li>
                    <a href='javascript:toggleLayer('register_main');'>Join!</a>
                </li>
            </ul>
        </div>"};

但是当我点击网站上的网址时,他们就不会执行javascript代码了。 在检查了我发现的其中一个要素之后

<a video');'="" href="javascript:toggleLayer(">Global</a>

是生成的代码,这是错误的。

我唯一的线索是它应该是

     <a href="javascript:toggleLayer('video');">Global</a>

虽然我不知道如何修复回声中的内容,因为它必须介于if语句之间

提前致谢!

3 个答案:

答案 0 :(得分:2)

替换:

<?php if($loggedIn){
   echo "<div id='navigation'>
        <ul>
            <li>
                <a href='javascript:toggleLayer('video');'>Global</a>
            </li>
            <li>
                <a href='javascript:toggleLayer('info');'>About</a>
            </li>
            <li>
                <a href='javascript:toggleLayer('register_main');'>Join!</a>
            </li>
        </ul>
    </div>"}; ?>

使用:

<?php if($loggedIn){ ?>
    <div id="navigation">
        <ul>
            <li>
                <a href="javascript:toggleLayer('video');">Global</a>
            </li>
            <li>
                <a href="javascript:toggleLayer('info');">About</a>
            </li>
            <li>
                <a href="javascript:toggleLayer('register_main');">Join!</a>
            </li>
        </ul>
    </div>
<?php } ?>

在字符串" I said "Hello" "中使用引号时。您需要转义匹配的周围引号,例如:" I said \"Hello\" "

答案 1 :(得分:0)

试试这个

...
<a href='javascript:toggleLayer(\"video\");'>Global</a>
...

答案 2 :(得分:0)

问题是你的引号。 你必须逃避<a>标签内的那些,你为你的javascript函数设置params,例如'视频'