gpt4 book ai didi

php - jquery pjax 与 php。重新加载时没有内容

转载 作者:搜寻专家 更新时间:2023-10-31 21:29:01 24 4
gpt4 key购买 nike

我尝试使用 jquery pjax 将我的内容加载到一个 div 中。这工作正常,但如果我重新加载页面我没有内容。我想我需要将页面内容放在 else{ 部分,但我不想将整个 html 设置在 php 变量中。如何解决这个问题?

索引.php:

<?php
$title = 'Home';
if(isset($_SERVER['HTTP_X_PJAX']) && $_SERVER['HTTP_X_PJAX'] == 'true'){ ?>
<div id="content">
<h1>home</h1>
</div>
<?php echo "<title>{$title}</title>";
}else{
include 'wrapper.php';
}
?>

包装器.php:

<ul class="nav navbar-nav" style='margin-left:20px;'>
<li><a href='index.php' data-pjax='content'>Home</a></li>
<li><a href='page1.php' data-pjax='content'>Demo 1</a></li>
<li><a href='page2.php' data-pjax='content'>Demo 2</a></li>
</ul>
<div id="content"></div>

JS:

$(document).ready(function() {
$(document).pjax('a[data-pjax]', '#content', {
fragment: '#content'
});
});

page1.php

<?php if(isset($_SERVER['HTTP_X_PJAX']) && $_SERVER['HTTP_X_PJAX'] == 'true'){  ?>
<div id="content">
<h1>Page 1</h1>
</div>
<?php } else{ include 'wrapper.php';} ?>

page2.php

<?php if(isset($_SERVER['HTTP_X_PJAX']) && $_SERVER['HTTP_X_PJAX'] == 'true'){
?>
<div id="content">
<h1>Page 2</h1>
</div>
<?php }else{
include 'wrapper.php';
}
?>

最佳答案

只有在没有使用 PJAX(== 正常方式)请求页面时,您才包含 wrapper.php。在 wrapper.php 中,内容为空。

如果请求来源不是 PJAX,您应该在 wrapper.php 中包含正确的页面:

首先你应该重命名一些文件。使用 index.php 作为主要布局文件(你打算用包装器做什么)。添加 p 作为查询参数(在 PHP 中可以读取为 true $_GET)以在单击链接时加载页面。

创建一个文件 home.php,它将作为默认页面加载到 #content 中的 index.php。

索引.php

<ul class="nav navbar-nav" style='margin-left:20px;'>
<li><a href='index.php' data-pjax='content'>Home</a></li>
<li><a href='index.php?p=1' data-pjax='content'>Demo 1</a></li>
<li><a href='index.php?p=2' data-pjax='content'>Demo 2</a></li>
</ul>
<div id="content">
<?php if(!isset($_SERVER['HTTP_X_AJAX'])) {
if(!isset($_GET['p'])) {
include('home.php');
}
else {
include('page'.$_GET['p'].'.php');
}
} ?>
</div>

这是一个非常简单的例子。在实时应用程序中,这应该以另一种方式完成,以保护脚本免受某些攻击。

我猜你是一个初学者。请看一下 CodeIgniter。它是一个具有许多现成功能的框架。它已被证明“容易”学习...

关于php - jquery pjax 与 php。重新加载时没有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32285243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com