使用Ajax / PHP刷新

时间:2009-03-30 00:45:45

标签: php ajax

继我昨天的问题(here)之后,我正在开设一个网页,其中有一个显示“实时”订单详情的部分。

我网页的上半部分有Spry Tabbed Panels。其中一个面板包含对我创建的单独php页面的include调用(getOpenOrders.php)。这包含一个SQL查询,用于获取所有打开的订单,然后将详细信息放入表中。

因此,未结订单表显示在Spry面板中。我现在需要采取哪些步骤每15秒刷新一次?

3 个答案:

答案 0 :(得分:1)

您真的想每15秒为每个用户调用一次数据库吗?是不是超负荷?

我不是说您的数据库会超载,但是,不应该做事情!

<强>被修改

您应该显示图片或指向该页面的链接以便输入相应的答案,因为这完全取决于您在表格中做了什么。

因为我不知道,我会就可能发生的事情给你一个答案。

因为你说你是ajax世界的新手,所以让事情变得简单,不要因为你应该返回一个JSON对象并使用它来重新填充你的表而变得复杂。 :)

所以我们将从2个按钮(上一个和下一个)开始,这样用户就可以移动显示的数据(你可能不想让他/她的100行看到正确的?)


假设您有2个页面, showData.php getTable.php ,在showData.php中您将需要加载jQuery(非常适合这个)并添加一些代码,但是在放置表的地方,只需添加一个id =“myTable”的div标签,因为我们将从getTable.php文件中获取数据。

getTable.php文件只输出表html代码中包含的所有数据,没有没有html,正文等...想法是在div里面添加名为myTable的所有getTable.php生成的代码< / p>

让我们假设getTable.php在queryString中获取一个页面变量,它将告诉您应该显示哪个页面(在MySQL或PostgreSQL数据库中使用LIMIT


您可以使用名为datatables的jQuery插件,这是我的选择之一,check his example以及您需要编写的小代码!只使用jQuery和Datatables插件。

第一个描述遵循jQuery.Load()加载getTable.php并添加为div的子项,并为前一个和下一个按钮执行此操作,并使用用户请求的页面传递查询字符串。这很简单,你可以看到网站,如果你更喜欢使用DataTables插件,那么只需按照他们的例子:)

如果您在需要帮助之后,请给我留言。

答案 1 :(得分:1)

<META HTTP-EQUIV=Refresh CONTENT="15; URL=<?php print $PHP_SELF ?>">

这应该在头部标签之间。

-OR -

header('Refresh: 15');

这应该是之前 head标记,并且直接位于html标记之后。

正如balexandre所说,应该使用不同的方法。对于连接到站点的每个用户,每15秒不需要数据库命中的数据库。但是,无论如何都有你的答案。

答案 2 :(得分:0)

虽然,balexandre非常重要,如果您确定需要刷新,您可以在JavaScript中执行以下操作:

window.onload = function( )
{
     setTimeout( 'window.location.refresh( )', 1500 );
}

(我没有测试过上面的代码,所以语法可能需要稍微调整一下,但是你明白了)