我正在尝试使用PJAX编写一个内容在运行时加载到div中的网站。我使用PJAX请求的PHP文件都包含页眉和页脚,只有在isset($_SERVER['X-PJAX'])
但是,当我使用PJAX加载PHP文件时,整个页面都会刷新。我认为我的PJAX代码有问题,但加载纯HTML文件效果很好。
编辑:如果它有帮助,我目前正在运行在localhost上的WAMP Server 2.2上运行所有这些。这就是我所做的所有开发工作。
供参考,这里是我用来加载内容的JS,以及一个php页面的例子
JS:
if ( $.support.pjax ) {
//disable <a> tabs, store value of href so pjax can use it
$('header a').each(function () {
$(this)
.attr('pjax', $(this).attr('href'))
.removeAttr('href')
.css('cursor','pointer')
})
//link up the pjax
.live('click', function () {
var link = $(this)
$('#content').animate({opacity:0}, {duration:500, complete:function(){
$.pjax({
url: link.attr('pjax'),
container: '#content',
complete: function() {
$('#content').animate({opacity:1}, 500);
}
});
}});
});
}
PHP:
//header.php
<?php
//If we are loading with pjax, ignore the header
if (!isset($_SERVER['X-PJAX'])) {
?>
<!-- head section, opening body tags, etc -->
<div role="main" id="content">
<?php } ?>
//foo.php
<?php include 'header.php'; ?>
<p>sample content</p>
<?php include 'footer.php'; ?>
//footer.php
<?php
if (!isset($_SERVER['X-PJAX'])) {
?>
</div>
<!-- load scripts, etc-->
<?php } ?>
答案 0 :(得分:6)
我使用
总能带来更多好运 $_SERVER["HTTP_X_PJAX"]
这是github repo我用一个功能齐全的PJAX php示例,对于那些需要所有源代码来查看启动和运行的人,并且可以帮助其他人在那里搜索PJAX php inplementation