Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在公共页眉-页脚编码结构上实现Pjax_Php_Jquery_Ajax_Codeigniter_Pjax - Fatal编程技术网

Php 在公共页眉-页脚编码结构上实现Pjax

Php 在公共页眉-页脚编码结构上实现Pjax,php,jquery,ajax,codeigniter,pjax,Php,Jquery,Ajax,Codeigniter,Pjax,我正在开发一个使用codeigniter的项目,它有共同的页眉和页脚。通过使用pjax,我能够单独动态更改内容,而不会干扰页眉和页脚。此外,url也会随着控制器的变化而变化。下面是我对url和SEO类比的关注 我的默认主页控制器加载页眉、索引页和页脚,如下所示 public function index(){ $this->load->model('dbmodel'); $data['about'] = $this->dbmodel->about();

我正在开发一个使用codeigniter的项目,它有共同的页眉和页脚。通过使用pjax,我能够单独动态更改内容,而不会干扰页眉和页脚。此外,url也会随着控制器的变化而变化。下面是我对url和SEO类比的关注

我的默认主页控制器加载页眉、索引页和页脚,如下所示

public function index(){
    $this->load->model('dbmodel');
    $data['about'] = $this->dbmodel->about();
    $this->load->view('templates/header',$data);
    $this->load->view('includes/index',$data);
    $this->load->view('templates/footer');
}
假设我单击一个菜单项,它加载url中相应的控制器路径(比如-),pjax内容div单独被替换/更新为内容,而页眉和页脚保持不变

public function bandDirectory(){
    $this->load->model('dbmodel');
    $data['content'] = $this->dbmodel->band();
    $this->load->view('includes/bandDirectory',$data);
}
当菜单项最初加载页眉和页脚时,从主页导航菜单项时,这种方法可以很好地工作。但是如果我们直接点击url(比如说),会怎么样呢。此控制器不包含页眉和页脚,它只加载将页面分开的内容!如果搜索引擎索引这些URL,这将成为一个严重的问题。如何克服这个问题


注:由于我在页眉中实现了一个播放器,我不想在所有控制器中都包含页眉和页脚,因为这样会在页眉刷新时阻止播放器播放。

我在项目中做的是在请求中查找pjax页眉,如果pjax头存在,则只加载内容模板,否则加载完整模板,这是我在perl中的相应代码,希望对您有所帮助

sub tour {
my $self = shift;
return $self->render(
    template => 'static/tour',
    layout   => $self->req->headers->header('X-PJAX') ? 'content_header' : 'full_width',
);}

您可以在php中实现相同的功能

嘿……它成功了!不知何故,我在Pjax文档中遗漏了这个标题部分。下面的链接帮助我在php/codeigniter中实现。谢谢:)