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

时间:2011-12-01 22:36:57

标签: php jquery html

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

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

这一切都很好,我很喜欢它。

BUT -

我在页面底部的总计数是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。

谢谢!

3 个答案:

答案 0 :(得分:1)

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

或者为了保持简单,如果他们点击“是”则启用计数器,如果他们点击否或可能并且他们之前的操作不是否或可能减少计数器。

答案 1 :(得分:0)

假设您的用户已登录系统,我建议您在用户表格中使用状态字段,或者作为枚举使用&#34;离线&#34;,&#34;可用&#34;,& #34;忙碌&#34;,&#34;不可用&#34;或类似的东西,并在更新用户状态时使用查询可用用户的数量。

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

答案 2 :(得分:-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);
}
...