0

我有一个出现在我所有页面上的菜单。它包含用于将文件名传递给 url 的 php,如下所示。这是一个片段...

document.write('<li><a href="somefile.php?folder=<?php echo "_abc"; ?>">abc</a></li>');
document.write('<li><a href="somefile.php?folder=<?php echo "_def"; ?>">def</a></li>');
document.write('<li><a href="somefile.php?folder=<?php echo "_ghi"; ?>">ghi</a></li>');

它包括 css 并且工作正常。我已将菜单保存为单独的 .js 文件并使用...

<script src="js/menucss.js"></script>

...从我希望它出现的每个页面加载它。菜单显示并且 css 工作正常 - 但是 php 不解析并且页面显示 php 标记。我究竟做错了什么?

提前致谢。尼尔

4

4 回答 4

1

你不应该那样做。

在某处保存一个名为menu.php保存的页面,其中包括:

<ul>

    <li><a href="somefile.php?folder=<?php echo "_abc"; ?>">abc</a></li>
    <li><a href="somefile.php?folder=<?php echo "_def"; ?>">def</a></li>
    <li><a href="somefile.php?folder=<?php echo "_ghi"; ?>">ghi</a></li>

</ul>

然后在服务器端包含它(index.php):

<html>
<head>
    <title></title>
</head>
<body>
<header>
    <?php include("main.php"); ?>
</header>
</body>
</html>

这种方法要优越得多:

  • 它不需要额外的请求来获取数据。
  • 数据加载不会出现闪烁或尴尬的时刻,菜单看起来就像您已将其直接编码到页面中一样。
  • 它要快得多。
  • 它不使用 JavaScript,客户端可以选择禁用它。
于 2012-09-01T06:44:05.220 回答
0

您遇到的问题可能是由于您尝试在.js文件上运行 PHP,而您的服务器未配置它。

将文件的扩展名更改为.php并使用:

<script src="js/menucss.php">
于 2012-09-01T06:48:12.303 回答
0

您混淆了服务器端和客户端。PHP 是关于服务器端的,PHP 代码是在服务器上解释的。JavaScript是关于客户端的,当用户已经获得html页面时,JavaScript会运行,因此当您通过JavaScript在客户端的html中动态添加php时,它无法运行。

于 2012-09-01T06:42:37.460 回答
0

据我了解,我认为您正在尝试在 .js 文件中运行 PHP。
您应该将该代码包含在 PHP 文件中。

于 2012-09-01T06:45:59.230 回答