从Javascript字符串调用时,PHP逻辑未运行

时间:2013-06-09 20:38:18

标签: php javascript html

我目前正在尝试在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。有谁知道为什么?

谢谢

1 个答案:

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