我有一个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);
}
...