2013-12-22 27 views
0

我有一個頁面,人們可以登錄,他們的登錄請求與jQuery的$ .ajax一起發送到處理頁面。在該頁面上,登錄嘗試期間收集的所有錯誤都存儲在$ _SESSION ['error']中。

如何訪問此變量以在嘗試完成後提醒用戶錯誤。我知道如何訪問會話變量,我的意思是如何在不重新加載頁面的情況下訪問php變量。我目前知道的唯一方法是在頁面加載中注入它們,但是由於Ajax請求而發生更改後,必須通過JavaScript以某種方式訪問​​它們。

+2

您通過回顯您需要返回的任何內容,將它們返回給ajax調用。 – adeneo

+0

你可以發佈一些示例代碼? –

+1

會話狀態僅在服務器上存在; Javascript只存在於客戶端上。在它們之間進行通信的唯一方法是將數據包含在對AJAX調用的響應中。 – SLaks

回答

1

不幸的是,你不能直接從JavaScript訪問PHP $_SESSION[]數組。這是設計的,因爲使用會話的一個主要觀點是數據保存在服務器端,最終用戶無法修改,因此也就是你的Javascript。

但是你可以做的是在你的ajax響應中包含錯誤列表。有可能你正在做一個返回'json'類型格式的ajax請求。只需在返回的json中包含錯誤列表,然後使用JavaScript來顯示它們。我建議不要共享整個$_SESSION數組,因爲它可能會泄露一些關於PHP交互的關鍵信息。另外,如果你當前沒有做一個期望json的ajax請求,那麼請考慮將它切換到你希望並返回的json。您可以通過這種方式提供更多隱藏數據,而不僅僅是一些HTML或文本。

希望這會有所幫助