【问题标题】:change the div content based on the $_GET value根据 $_GET 值更改 div 内容
【发布时间】: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 ..:)

标签: php jquery


【解决方案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> 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 1970-01-01
        • 1970-01-01
        • 2019-11-02
        • 2021-12-31
        • 2013-05-05
        相关资源
        最近更新 更多