2010-04-14 76 views
0

實例化對象的麻煩這是我第一次用這兩個AJAX和對象打,所以請去容易對我有與PHP和Ajax的自定義購物車

我有3個頁面組成的測試購物車。

1)使用'添加''刪除'按鈕和ajax代碼來調用第2頁的PHP函數。這是帶有HTML輸出的實際用戶頁面。

2)頁用PHP車函數調用,第1頁的接收來自AJAX $ _GET請求和從第3頁調用車對象的功能,結果返回第1

3)與車對象定義頁面。

這是我相信我遇到的問題。目前,我有第1頁& 2上的'session_start()'和第1頁上的購物車定義(第3頁)。2.我只在第2頁上定義'$ _SESSION [cart] =新購物車'。不過,每次我點擊一個ajax函數(例如每次pg 2重新加載時),它似乎就會重新編寫$ _SESSION ['cart'],因此它每次新的點擊都是空的(即使顯示該點擊的結果)

但是,如果我不界定 '$ _SESSION [車] =新的購物車' 在第2,我得到一個錯誤:

Fatal error: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Cart" of the object you are trying to operate on was loaded before unserialize() gets called or provide a __autoload() function to load the class definition in /home3/foundloc/public_html/booka/carti.php on line 17

有什麼建議?每當我的頁面2(php購物車功能頁面)被ajax調用時,如何停止重新創建我的購物車?

回答

0

您的評論對alex' answer:你需要包括Cart類的定義調用session_start()之前。

您會看到,當您撥打session_start()時,會話數據將被反序列化並放入全局$_SESSION哈希中。因此,它需要事先提供任何外部類的定義。

+0

非常感謝!像魅力一樣工作。我猜這輛車確實每隔一段時間都會在馬前出現 – Phil 2010-04-14 00:45:36

+0

哈哈,我想是的。 :)而且不客氣。 – 2010-04-14 00:47:56

0

你可以這樣做嗎?基於

session_start(); 
if (! isset($_SESSION['cart'])) { 
    $_SESSION['cart']= new Cart; 
} 
+0

謝謝...嘗試了壽。目前正在第2頁的頂部<? 「在session_start(); 包括( 'cart.php');如果 (isset($ _ SESSION [購物車)) { 回聲」 購物車被設置
「; } 別的 { $ _SESSION [車] =新購物車; 回聲「創建購物車
」; }「 ?> 它顯示」購物車已設置「,仍然給出上述錯誤。 – Phil 2010-04-14 00:22:18