2012-04-05 63 views
1

我開發的網頁具有主index.php文件,如下所示時,請在PHP中生成的對象: 如何使用XMLHttpRequest的

include('UserClass.php'); 
include('html/top.php'); 
$user = new User(); 
if (isset($_POST['user'], $_POST['pass'])) 
{ 
    $user->login($_POST['user'], $_POST['pass']); 
} 

if ($user->logged != 1) 
{ 
    include('html/forms/login.html'); 
    include('html/forms/register.html'); 
    include('html/calendar.php'); 
} 

這是我的AJAX腳本:

function nextMonth() 
{ 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("text").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET", "html/calendar.php", true); 
    xmlhttp.send(); 
} 

當我點擊按鈕觸發nextMonth()我得到錯誤:

Fatal error: Call to a member function check_date() on a non-object in /var/www/.../html/calendar.php on line 41

這意味着,用戶對象不存在的,所以我不能使用來自用戶類的方法。在calendar.php中創建用戶的新實例是不可能的,因爲它會在每次嘗試將calndar視圖更改爲下個月時註銷用戶。在做所有這些AJAX事情時,我應該如何保存/傳遞index.php中的對象?謝謝!

+2

HTTP是無狀態的。你可能想要使用cookies。 – SLaks 2012-04-05 15:33:18

回答

0

您需要使用php圖層,這是通過會話完成的。

+0

我讀過一些關於這個問題的更多信息,你必須使用serialize()函數在多個php頁面之間傳遞對象。 http://www.php.net/manual/en/language.oop5.serialization.php - 所有解釋:) – user1315623 2012-04-06 11:28:27