【发布时间】:2012-09-02 11:44:04
【问题描述】:
我有一个主 php 文件,其中有一个“导航栏”,其中包含指向各个页面的链接,单击“导航栏”项目时,我希望将 div 的内容替换为相应的页面。
navbar.php:
<li id="nav-home"><a class="button" href="main.php">Home</a></li>
<li id="nav-attn"><a class="button" href="?nav=page1.php">Page1</a></li>
<li id="nav-tran"><a class="button" href="?nav=page2.php">Page2</a></li>
<li id="nav-mr"><a class="button" href="?nav=page3.php">Page3</a></li>
main.php:
<script>
$(document).ready(function() {
$('#content').load('<?php echo $_GET['nav'] ?>');
});
</script>
使用此代码,我期望在单击导航栏项目时,div 内容必须更改为相应的页面引用。 我发现,例如,当我单击 page1 时,我的 url 被更改为 main?nav=page1.php,但根本没有触发更改 div 内容的脚本。 请纠正我,但我不想将链接更改为“#”。
【问题讨论】:
-
你有一个巨大的XSS security hole 在那里,跟随一个链接到一个新页面只是使用Ajax 加载所有内容是相当没有意义的(而且效率低下且搜索引擎不友好)。只需将内容包含在 PHP 中即可。
-
我也想说同样的话,直接用 AJAX 或 PHP 包含内容,但不要使用这种无效的方式
-
如果我输入 url
http://example.com/main.php?nav=main.php?? :)) -
只是一个建议:您可以为此使用 twitter bootstrap..因为它具有这种事情的内置功能,它使生活更轻松..更好的是您可以尝试使用主干.js ..:)