我目前正在尝试在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。有谁知道为什么?
谢谢
答案 0 :(得分:1)
你完全错了。浏览器无法看到任何PHP逻辑,因为它在服务器上编译并以普通html(或javascript)的形式发送到浏览器。另外,你不能在.js文件中编写php代码。
以下是您可以做的事情:
将您尝试填充到div(customNav)中的html收集到php变量(比如$ navHtml)中,将逻辑保存在PHP中,然后将其分配给js变量,如下所示:
strVar = "<?php echo $navHTML; ?>";
document.getElementById("customNav").innerHTML= strVar;
将文件的扩展名从js更改为php。
在脚本标记中包含如下所示:
<?php include_once "topNavBar.php"; ?>