1

我目前正在尝试将导航栏包含在 javascript 文件中,因此我不需要将整个代码放在每个页面上。导航栏运行良好......直到我将一些 php 逻辑插入到字符串变量中......这就是我的意思。

    strVar += "             <?php if($_COOKIE['username'] != \"\"){ ?>";
    strVar += "             <div class=\"stack\">";
    strVar += "                 <ul class=\"nav pull-right\">";
    strVar += "                     ";
    strVar += "                         <li>";
    strVar += "                         <p class=\"navbar-text login\">Logged In as: <\/p>";
    strVar += "                         <\/li>";
    strVar += "                         <li>";
    strVar += "                         <p class=\"navbar-text user\">";
    strVar += "                     <?php echo $_COOKIE['username'];?>";
    strVar += "                         <\/p>";
    strVar += "                         <\/li>";
    strVar += "                     ";
    strVar += "                         <p>";
    strVar += "                         <a href=\"..\/php\/logout.php\">";
    strVar += "                         Logout";
    strVar += "                         <\/a>";
    strVar += "                         | ";
    strVar += "                         <a href=\"#\">Control Panel";
    strVar += "                         <\/a>";
    strVar += "                         <\/p>";
    strVar += "";
    strVar += "                 <\/ul>";
    strVar += "             <\/div>";
    strVar += "             <?php } ?>";
document.getElementById("customNav").innerHTML= strVar;

我从 .php 文件中调用此脚本:

<! --NavBar-->
        <header class="row">
            <div id="customNav" class="span12">
                <script src="js/topNavBar.js" type="text/javascript">
            </script>
            </div>
        </header>
        <!--NavBar-->

截至目前,如果我将 JS 脚本作为普通的 html/php 代码嵌入,它可以完全正常工作。但是,当我执行上述情况时,它会完全忽略 php 代码,但会正确显示栏,就好像从未编写过 php 一样。有谁知道为什么?

谢谢

4

1 回答 1

1

你完全错了。浏览器看不到您的任何 php 逻辑,因为它是在服务器上编译并作为纯 html(或 javascript)发送到浏览器的。此外,您不能在 .js 文件中编写 php 代码。

这是您可以执行的操作:

  1. 将您尝试填充到 div(customNav) 中的 html 收集到 php 变量中(比如 $navHtml),将逻辑也保留在 PHP 中,然后将其分配到 js 变量中,如下所示:

    strVar = "<?php echo $navHTML; ?>";  
    document.getElementById("customNav").innerHTML= strVar;
    
  2. 将文件的扩展名从 js 更改为 php。

  3. 将其包含在脚本标签中,如下所示:

    <?php include_once "topNavBar.php"; ?>
    
于 2013-06-09T21:07:45.227 回答