1

我有一个 php 文件,它从 MySql 数据库中检索数据并显示它。但是数据库没有更多的数据说100。但是在我的php文件中,我计划一次显示6个,只需使用

LIMIT start_value, 6.

然后在底部我有一个包含以下代码的平底锅

<a href="index.html?start_value=start_value+6">1</a>
<a href="index.html?start_value=start_value+12">2</a>
<a href="index.html?start_value=start_value+18">3</a>
<a href="index.html?start_value=start_value+24">4</a>
<a href="index.html?start_value=start_value+30">5</a>
<a href="index.html?start_value=start_value+36">6</a>

所以现在的问题是,如果有人点击整个 index.html 上方的链接,将会重新加载,这会很烦人。有什么方法可以通过单击任何链接后重新加载该特定 DIV 来显示数据库中的新数据?

4

3 回答 3

3

你有两个选择:

  1. Ajax,它允许您使用 JavaScript 从服务器检索数据,然后您可以使用它来操作 DOM。Ajax 的基础是XMLHttpRequest对象,它允许您在 JavaScript 中完全在后台检索数据。请注意,Ajax 受Same Origin Policy的限制,但对于您所描述的,这很好——您将从同源加载数据。

  2. 框架(例如iframe元素),您可以通过设置它们的 src 属性来加载内容。

在这两者中,Ajax 更加灵活。

参考资料/延伸阅读:


旁注:虽然显然您可以XMLHttpRequest直接使用 DOM 方法,但请注意存在跨浏览器的差异(和彻底的错误),可以通过jQueryPrototypeYUIClosure任何一个好的库为您平滑其他几个。它们还提供了许多有用的实用程序功能,使您可以专注于您要解决的实际问题,而不是管道的细节。

例如,下面是使用 jQuery 向服务器发送 Ajax 请求并使用服务器发回的 HTML 片段更新页面上的元素的方式:

$("#target").load("get_the_data.php", {article: x});

这就是说:从 get_the_data.php 请求一个 HTML 片段,将带有 x 变量值的参数文章发送给它,并将该 HTML 片段放入具有 HTML id“目标”的元素中。如果您不使用库,那将是一个很好的 10 行代码。现在,这不是很多,但是一遍又一遍地重复(并且在这个过程中处理一个 IE 错误,围绕通过它们的 id 查找元素),你会看到它是如何加起来的。

我确实建议您阅读上面的参考资料,这样您就知道图书馆是如何做他们正在做的事情的(这不是魔术),但是没有理由不利用人们所做的辛勤工作来简化这些工作。


如果您有一个服务于 myaction 的页面,例如 index.html?start_value=start_value+6,您可以这样做:

setInterval(myaction, 20000); //every 20 seconds

function myaction() {
  $("#quoteContainer").load("index.html?start_value=start_value+6");
}
于 2012-05-06T15:54:35.257 回答
3

有什么方法可以通过单击任何链接后重新加载该特定 DIV 来显示数据库中的新数据?

就在这里。您需要使用XMLHttpRequest对象和DOM。一言以蔽之:AJAX

最好的方法是使用像jQueryPrototipe这样的框架。

在这里你可以找到一个例子。在该示例中,您应该将“latest_scores.html”页面替换为另一个页面“latest_scores.php”。php 脚本将创建可以放置在您的 div 中的刷新内容。

于 2012-05-06T15:57:52.853 回答
0

您应该查看jQuery javascript 库,它允许您使用 ajax 轻松加载内容,因为 ajax 是您正在寻找的!PHP 是一种服务器端语言,它在服务器上运行并且不是动态的,您正在寻找在客户端运行的东西,那就是 Javascript。

于 2012-05-06T15:54:30.283 回答