根据 $_GET 值更改 div 内容

Posted

技术标签:

【中文标题】根据 $_GET 值更改 div 内容【英文标题】:change the div content based on the $_GET value 【发布时间】: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 ..:) 【参考方案1】:
<script>
$(document).ready(function()   
  $('uL#navbar a').click(function(e)
    e.preventDefault();
    $('#content').load($(this).attr('href'));
  );
);
</script>

【讨论】:

【参考方案2】:

你可以试试这个

$(document).ready(function()  
    $('ul li a.button').on('click', function(e)
        e.preventDefault();
        $('#content').load($(this).attr('href'));           
    );
);

【讨论】:

【参考方案3】:

你需要使用 AJAX 来实现它

<script>
    $(function()
        $('.button').on('click', function(e)
            e.preventDefault();
            $('#content').load($(this).attr('href'));
        );
    )
</script>

<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>
<div id="content"></div>

【讨论】:

1) 一样吗? 2)为什么你添加了与谢赫相同的答案? 3) 试着理解,打字、测试和提交通常需要时间。 1) 是的,它是一样的 2) skheik 在我之后添加了答案 3) 什么测试:D 没有冒犯,但 IMO 没有必要重复答案 在这里,当我使用代码时,我的 url 没有改变,并且 div 替换为相同的页面内容,但是在新的 div 中,我有一个表单,操作应该让我保持在同一个页面中。发生的事情是当我提交带有新 div 的表单时被重定向到 main.php,这是我不想要的。如何做到这一点?【参考方案4】:

试试;

$(document).ready(function()  
    $('.button').on('click', function(e)
        e.preventDefault();
        $('#content').load($(this).attr('href'));           
    );
);

在您的 php 中,更改代码,使 echo 看起来像;

<li id="nav-attn"><a class="button" href="yourpage.php?nav=page1.php">Page1</a></li> 

【讨论】:

以上是关于根据 $_GET 值更改 div 内容的主要内容,如果未能解决你的问题,请参考以下文章

如何根据屏幕大小更改 div 内容

根据下拉菜单中的选择更改 div 的内容

根据具有更多内容的div动态更改多个div的高度[重复]

如何根据子 SVG 内容对齐父 div 高度

通过从 javascript 文件中查询数据库,根据下拉菜单中的选择更新 div 内容

如何根据来自 javascript 函数的值呈现 Div 内容