使用PHP更新多个页面元素而不刷新页面;jQuery


Updating multiple page elements without refreshing the page using PHP & jQuery

我有一个PHP页面,它使用jQuery让用户无需刷新页面即可更新特定项。这是一个可用性更新,他们可以将事件的可用性更改为Yes、No或Maybe。每次他们点击链接,适当的jQuery函数被调用发送数据到一个单独的PHP文件(update_availy . PHP),并返回适当的数据。

<a href="javascript(void);" onClick="updateAvail(params);">Yes</a>

然后当点击参数被发送到一个PHP文件返回:

<a href="javascript(void);" onClick="updateAvail(params);">No</a>

如果再次点击,PHP将返回:

<a href="javascript(void);" onClick="updateAvail(params);">Maybe</a>

一切都很好,我很喜欢。

,

我还在页面底部有一个总数,这是PHP代码,用于计算选择Yes作为可用性的用户总数,只需使用:

<?php count($event1_accepted); ?>

我如何使它,如果一个用户改变他们的可用性,它也会更新计数而不需要刷新页面?

目前为止我的想法是:

$var = 1;
while ($var > 0) {
    count($day1_accepted);
    $var = 0;
    exit;
}

然后在我的'update_avail.php'(它从jQuery函数获取数据)中添加一行,使$var = 1

任何帮助都太好了。我想强调的是,我的主要优势是PHP,而不是jQuery,所以PHP解决方案是首选,但如果有必要,我可以处理一些简单的jQuery。

谢谢!

在update_avail.php的响应中返回一个JSON对象,其中包含您的替换html和新的计数器值。

或者为了保持简单,如果他们点击"是"增加计数器,如果他们点击"否"或"可能"并且他们之前的动作不是"否"或"可能",则减少计数器

假设你的用户已经登录到系统中,我建议在用户表中有一个状态字段,也许是一个带有"offline", "available", "busy", "unavailable"或类似的enum,并使用查询可用用户的数量,同时更新用户状态。

如果您要这样做,您需要在扩展中包含包含session)start()和session_destroy()的方法,以将用户的可用性分别更改为可用/离线

最好的方法是Scuzzy建议的经过一些改进的方法。

在php中,从数据库中获取计数并返回一个JSON对象,如:

{ count: 123, html: '<a href="javascript(void);" onClick="updateAvail(params);">Yes</a>' }

在您的页面中,在ajax响应中获取值并更新元素:

...
success: function(data) {
    $("#linkPlaceholder").html(data.html);
    $("#countPlaceholder").html(data.count);
}
...