php include语句不包括我的php文件到页面

时间:2015-07-12 13:41:41

标签: javascript php jquery html ajax

当我尝试在tabnav_Browse.php目录中包含includes页面而Browse_Page1.php是另一个位于Browse目录的文件时,将此代码放在页面上<?php include ("../includes/tabnav_Browse.php"); ?>但它在Browse_Page1.php页面上没有显示任何内容,甚至没有任何错误。实际上这个问题是持久的,因为我启动这个jquery ajax函数来动态加载我的页面而不重新加载页面。但我已成功将footer.phpstylesheets_fonts_js.php添加到index.php,这两个文件也位于includes文件夹中,就像tabnav_Browse.php一样!那么为什么tabnav_Browse.php不会包含而另外两个呢? 我尝试了不同的变体,例如<?php include ("../includes/tabnav_Browse.php"); ?> <?php include ("/includes/tabnav_Browse.php"); ?> <?php include ("./includes/tabnav_Browse.php"); ?>,但没有任何效果! 这是我的文件结构

  • 浏览
  • 的index.php

这是我的导航菜单。

 <nav>
 <ul id='menu' class="menu-items">
 <li><a href="#Browse_Page1" class="albums active" id="page1-link"><i class="arcd-archive"></i></br>Browse</a></li>
 <li><a href="#Top_albums_Page1" class="pages" id="page2-link"><i class="arcd-music97"></i></br>Top albums</a></li>
 <li><a href="#Top_artists_Page1" class="albums" id="page3-link"><i class="arcd-microphone52"></i></br>Top artists</a></li>
 <li><a href="#Top_lists_Page1" class="pages" id="page4-link"><i class="arcd-numbered8"></i></br>Top lists</a></li>
 <li><a href="#Charts_Page1" class="pages" id="page4-link"><i class="arcd-rising9"></i></br>Charts</a></li>
 </ul>
 </nav>

这是我和load.php文件一起讨论的jquery ajax函数。

  $(function () {
  $('header nav a').on('click', function () {
    var linkClicked = $(this).attr('href');
    var data = {
        page      : linkClicked.replace(/\D/g, ''),
        directory : linkClicked.replace(/(_Page(.*)|#)/g,'')
    }

    $("header nav a").removeClass("active");
    $(this).addClass("active");
    $('#loading').css('visibility', 'visible');

    $.post('load.php', data, function(msg) {
        $('#main-content').html(msg);
        $('#loading').css('visibility', 'hidden');
        $('#main-content section').hide().fadeIn();
      }, 'html');
    });
  });

load.php

  <?php
    $page = filter_var( $_POST['page'], FILTER_VALIDATE_INT);
    $dir  = filter_var( $_POST['directory'], FILTER_SANITIZE_STRING);
    if ( $page !== false && $dir !== false ) {
    $link = $dir . '/' . $dir . '_Page' . $page . '.html';
    if ( file_exists( $link ) ) {
    echo file_get_contents( $link );
    } else {
        echo 'There is no such page!';
     }
    }
  ?>

请帮帮我!任何帮助将非常感谢!谢谢

1 个答案:

答案 0 :(得分:0)

这条线上应该有两个$ dirs吗?

$link = $dir . '/' . $dir . '_Page' . $page . '.html';

还是看起来像这样?

$link = $dir . '_Page' . $page . '.html';

就此而言,您可以简化代码而不使用Ajax,或者将href更改为“#”并使用数据文件属性,如下所示:

 <li><a href="#" data-file="Top_artists1" class="albums" id="page3-link"><i class="arcd-microphone52"></i></br>Top artists</a></li>

用于JavaScript

$(function () {
$('header nav a').on('click', function () {
    var data = {
        html: $(this).attr('data-file');
    }

    $("header nav a").removeClass("active");
    $(this).addClass("active");
    $('#loading').css('visibility', 'visible');

    $.post('load.php', data, function(msg) {
         $('#main-content').html(msg);
         $('#loading').css('visibility', 'hidden');
         $('#main-content section').hide().fadeIn();
     }, 'html');
  });
});

在服务器上( load.php ):

<?php
    $url  = preg_match( '/\w+/', $_POST['data-file']);
    if ( $url !== 0 ) {
        if ( file_exists( $file ) ) {
            echo file_get_contents( $file );
        } else {
            echo 'There is no such page!';
    }
  }