当我尝试在tabnav_Browse.php
目录中包含includes
页面而Browse_Page1.php
是另一个位于Browse
目录的文件时,将此代码放在页面上<?php include ("../includes/tabnav_Browse.php"); ?>
但它在Browse_Page1.php
页面上没有显示任何内容,甚至没有任何错误。实际上这个问题是持久的,因为我启动这个jquery ajax函数来动态加载我的页面而不重新加载页面。但我已成功将footer.php
和stylesheets_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"); ?>
,但没有任何效果!
这是我的文件结构
这是我的导航菜单。
<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 :(得分: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!';
}
}