2015-07-12 106 views
1

當我試圖包括tabnav_Browse.php網頁,其中位於includes目錄和Browse_Page1.php是通過把這個代碼的頁面<?php include ("../includes/tabnav_Browse.php"); ?>但它顯示了在位於Browse目錄另一個文件沒有什麼在Browse_Page1.php頁面甚至沒有任何一種錯誤。實際上這個問題是持久的,因爲我啓動這個jquery ajax函數來動態加載我的網頁,而無需重新加載頁面。但我已成功將footer.phpstylesheets_fonts_js.phpindex.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"); ?>但沒有任何工作! 這裏是我的文件結構PHP包含語句不包括我的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!'; 
    } 
    } 
    ?> 

請幫幫我!任何幫助將非常感激!謝謝

+0

添加ini_set('display_errors',1);作爲PHP文件的第一行,它將允許顯示錯誤。問題可能是路徑問題。 – user2182349

+0

@ user2182349感謝您的支持,你可以理解我的問題'load.php'工作正常,爲什麼我發佈這個文件,因爲它使用jQuery的Ajax功能,我在導航菜單中加載頁面。至於路徑問題,我100%肯定這是正確的,你也看到上面的文件夾結構!發生了什麼我不知道! – arcade

+0

使用瀏覽器控制檯或網絡選項卡來查看jQuery – user2182349

回答

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!'; 
    } 
    }