2011-09-02 20 views
1

我不得不要求Class文件兩次。無論如何要解決這個問題嗎?我有一門名爲Book的課程。有一個主頁需要Book類,因爲它創建了本書對象的一個​​對象。有一個使用Ajax加載一個腳本保存編輯的書對象以下是相關的流程,需要我需要的類文件兩次JavaScript文件:必須要求兩次相同的文件,如何解決這個問題?

  1. 有需要的書類,因爲一個主頁它會創建一個Book對象並顯示關於該書的信息。此頁面有一個保存按鈕。
  2. 有一個JavaScript文件,它使用AJAX加載一個PHP腳本來保存已編輯的書籍對象。
  3. 保存腳本還必須要求Book類,因爲它需要加載相同的對象。 (實際上不能通過AJAX傳遞PHP對象)

首先,這甚至不起作用。當我需要保存腳本中的Book類時,它會失敗。其次,是否有更好的方法來做到這一點,因爲我必須要求Book類兩次。

+0

奇怪的是,這些聽起來像單獨的腳本,但你有沒有嘗試過使用'require_once()'?由於HTTP是無狀態的,因此對第二個PHP腳本的ajax調用與呈現頁面的第一個PHP頁面無關。我敢打賭,錯誤與此無關。 – Fosco

+0

保存腳本文件中的require存在錯誤。它在主頁面PHP中工作。我很確定保存腳本中的路徑是正確的:require_once(「../ classes/BookClass.php」); – egidra

+0

很確定?你爲什麼不確定?似乎是一個非常簡單的路徑來驗證... – Fosco

回答

0

require_once應該給你你需要的東西。

說了這麼多(重讀你的問題)後,你提到的兩個腳本似乎是完全獨立的..所以..

如何是AJAX包括失敗?你看到什麼錯誤?

+0

保存腳本中的錯誤是,在執行require之後出現的任何代碼都未執行。我在require文件之前和之後放置了一個echo,並且只執行require之前的echo。 – egidra

+1

@egidra然後您需要更改日誌記錄級別,以便看到實際的錯誤。 – Fosco

+0

聽起來就像你班上的東西包含着文件。我建議使用'dbg'來逐步確定出錯的地方並更改日誌記錄級別。 –

0

您始終可以使用require_once()來強制腳本使用現有資源。至於需要Book類的PHP頁面的AJAX調用,除非將其存儲在memcache或其他東西中,否則無法使用由父頁面實例化的類,因爲就服務器而言,它是新的請求。

+0

require_once('BookClass.php')是否進入主php文件或保存php文件?或兩者? – egidra

+0

@egidra Both ... – Fosco