2011-12-01 155 views
0

我有一个PHP页面,它使用jQuery让用户更新特定项目而无需刷新页面。这是一个可用性更新,他们可以将事件的可用性更改为Yes,No或Maybe。每次他们点击链接时,都会调用相应的jQuery函数将数据发送到单独的PHP文件(update_avail.php),并返回相应的数据。更新多个页面元素而无需使用PHP和jQuery刷新页面

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

然后单击时PARAMS发送到PHP文件,返回:

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

然后,如果单击再次PHP将返回:

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

这一切工作正常我很喜欢它。

可是 -

我也有在页面底部的总数是PHP代码来计算已选择是因为它们的可用性的用户总数只需使用:

<?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。

谢谢!

回答

1

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

或者为了保持简单,如果他们点击“是”,则触发计数器,如果他们单击否或可能以及他们先前的操作不是否或可能减少计数器。

0

假设你的用户登录到系统中,我建议在用户表中有一个状态字段,可能是一个带有“脱机”,“可用”,“繁忙”,“不可用”或类似的枚举在更新用户状态时查询可用用户的数量。

如果你要做到这一点你需要在扩展你的方法含会议)开始()和session_destroy()到用户的可用性的变化可用/离线分别

-1

最好的办法是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); 
} 
... 
+0

使用innerHTML是**从来没有**的解决方案! –

+0

你能解释一下为什么这么糟糕吗? – rcdmk

相关问题