2011-12-01 250 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

相關問題