gpt4 book ai didi

php - 加载动态 php 和 mysql 页面而不刷新 - AJAX

转载 作者:行者123 更新时间:2023-11-29 03:10:28 24 4
gpt4 key购买 nike

在过去的几天里,我在网上四处游荡,寻找一个包含我想要的元素的脚本。迄今为止最好的是这个 http://www.queness.com/post/328/a-simple-ajax-driven-website-with-jqueryphp ,但是有很多问题,我需要更好的解决方案:

  • 我不想要主题标签:我想要所有用于加载页面的链接,例如文件夹 (www.site.com/first/site/)。这在 github 上很有效(单击此处 https://github.com/spjoe/deluge-yarss-plugin,然后单击一个随机文件并在观看地址栏时返回)。如果有人知道他们在做什么或怎么做,那就太好了。

  • 我需要动态内容:上面的脚本只从 switch 函数加载“案例”,而我需要 php 检查 url 并在 mysql 数据库中找到一个文件,并根据 url 从所需的表中回显内容,如果它在当然的数据库中找到(如果我指向 site.com/harvey 的链接,php 应该在数据库中找到 Harvey 并显示例如他的电话,地址和其他详细信息,而这不能预加载但仅请求由于带宽问题点击)。

  • 历史记录:我希望有一个选项可以让网站上的前后移动完美无缺地工作,并且在单击链接时可以使用动画。

  • 可更改 div 中的工作链接:因为某些脚本存在问题,这些脚本不会更改其中链接所在的内容(例如,第一个内容框包含导航,应将其替换为不同的导航第二个盒子),这同样适用于 github..

我希望你能给我一些链接或更多关于代码的帮助..

最佳答案

我认为您正在寻找的脚本是 pjax , 它具有您想要的所有功能。你可以在 github 上找到它:https://github.com/defunkt/jquery-pjax/tree/heroku

编辑

您可以将它与您喜欢的任何服务器端语言一起使用。例如,

<script src="jquery.js"></script>
<script src="jquery.cookie.js"></script>

<script src="jquery.pjax.js"></script>
<script type="text/javascript">
$(function(){
$('nav a').pjax('#content')
})
</script>

在您网站的头部,

<nav>
<a href="otherContent1.php" >click me for other content</a>
<a href="otherContent2.php" >click me for even more additional content</a>
</nav>
<section id="content">
<h1>Original Content</h2>
<p>
this will be replaced by pjax with the content's of <a href="otherContent1.php">otherContent1.php</a> or <a href="otherContent2.php">otherContent2.php</a>
</p>
</section>

在您的主模板中修改您的 php 代码,使其查找 HTTP_X_PJAX header 。如果它存在(见 xhr.setRequestHeader('X-PJAX', 'true') )只渲染应该替换 <section id="content"> 内容的部分, 否则呈现整个页面。 Pjax 足够智能,如果它工作,它将只替换 <section id="content"> 的内容。 ,如果它不起作用,您仍然可以使用常规链接。 pjax 甚至会处理谷歌分析,如果您正在使用它,那么您的跟踪仍然有效。

EDIT2:例子

好的,这里有一个示例 php 页面。请注意,我没有对此进行测试,我只是在堆栈溢出时快速而粗略地在此处写下它,以展示您可以如何解决此问题。此代码未经测试,当然未准备好生产。但作为示例,您可以执行如下操作(文件应命名为 index.php):

<?php
$render_template=true;
if ($_SERVER["HTTP_X_PJAX"])
{
$render_template=false;
}
?>

<?php
if ($render_template) {
?>
<html>
<head>
<meta charset="utf-8" />
<title>Testing Pjax</title>
<script src="jquery.js"></script>
<script src="jquery.cookie.js"></script>

<script src="jquery.pjax.js"></script>
<script type="text/javascript">
$(function(){
$('nav a').pjax('#content')
})
</script>
</head>
<body>
Date in template: <?php echo $today = date("D M j G:i:s T Y"); ?>
<nav>
<a href="index.php?content=1" >click me for other content</a>
<a href="index.php?content=2" >click me for even more additional content</a>
</nav>
<section id="content">
<?php
}
?>
<?php
if ($_Get["content"]==1)
{
?>

<h1>Content=1</h1>
Date in content: <?php echo $today = date("D M j G:i:s T Y"); ?>
<p>
this will be replaced by pjax with the content's of <a href="index.php?content=1">index.php?content=1</a> or <a href="index.php?content=2">index.php?content=2</a>
</p>
<?php
} else {
?>
<h1>Content 2=2</h1>
Date in content: <?php echo $today = date("D M j G:i:s T Y"); ?>
<p>
this will be replaced by pjax with the content's of <a href="index.php?content=1">index.php?content=1</a> or <a href="index.php?content=2">index.php?content=2</a>
</p>
<?php
}
?>
<?php
if ($render_template) {
?>
</section>
</body>
</html>
<?php
}
?>

关于php - 加载动态 php 和 mysql 页面而不刷新 - AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262816/

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