0

我建立一個簡單的,7頁,數據庫驅動,網站,我想建立一個簡單的內容管理系統。一個超級簡單的CMS,僅用於更改某些頁面上的文本並將圖像上傳到另一個頁面。我甚至不會把它稱爲CMS。我主要是爲了構建Web應用程序的學習體驗。簡單的Web應用程序風格的CMS,但有問題的AJAX

我在想什麼,是使用PHP來建立一個簡單的網頁,將有一些簡單的登錄處理。然後使用ajax爲每個頁面加載不同的模塊。就像在主頁上一樣,我只希望文本可以改變。我想我可以做的就是使用ajax加載另一個php頁面,它只是加載一個tinymce編輯器,並用數據庫中的文本預加載它,並用一個簡單的ajax按鈕將文本上傳到數據庫。與iframe類似,但不包含iframe。

當我嘗試這一切時,我得到的是一些文本和textarea框。原來它只加載文本不是JavaScript。在進一步閱讀後,我發現我可以使用eval來將文本加載到javascript中,但這導致了我所理解的範圍問題。

所以我基本上想知道如何做到這一點我的目標是類似於谷歌和/或雅虎郵件應用程序。我首先想到的是我可以拋出主要頁面上要使用的所有javascript代碼,並且只是使用ajax加載內容,但從我讀過的內容來看,javascript不會將自己應用於新代碼,因爲它不是'在代碼被應用到DOM元素的某個時候,當頁面首次加載時。我接下來的想法是加載內容,然後使用jquery加載腳本,並將其應用於新加載的內容,但試圖找到任何有關令人困惑的內容。

有沒有人做過類似的事情,願意分享他們學到的東西,或者只是知道我在說什麼,可以幫助我?或者解決方案很簡單,我只是沒有看到它?

+0

我想應該補充一點,我已經建立了php的後端cms。使用tinymce作爲編輯器。我沒有問題。我想要做的是將其轉換爲一個網絡應用程序的體驗。我在加載模塊時遇到問題(我猜這就是他們將被調用的)根據需要加載到頁面中。給它的網絡應用程序的感覺。 – Dreadfulgravy

回答

0

我們可以使用更多的細節(如代碼,程序等),但是,我想幫忙。

關於TinyMCE的,這是我對此採取:

  • 創建具有timyMCE上的PHP文件。讓我們將其命名爲「tinymce.php」
  • 創建一個加載數據庫中文本的php文件。我們在您的主頁(應用頁面)上稱其爲「defaulttext.php」
  • ,通過ajax加載「tinymce.php」。這會將tinymce編輯器從php文件加載到主應用程序頁面
  • 在「tinymce.php」加載後創建回調(在先前過程成功後調用函數)。在這個調用中,調用「defaulttext.php」並將其內容加載到之前加載的「tinymce.php」內容的文本框中。

總共有2個調用:一個調用編輯器和之後的默認內容。

您可以使用預加載的腳本在加載任何內容之前執行所需的操作。創建腳本來處理DOM,事件等(事件處理程序)。

+0

正如我已經說過,我已經建立了PHP的後端,但無論如何感謝。預加載腳本的問題是代碼(如新按鈕,tinymce的一個新實例)以及所有這些有趣的JavaScript東西不會應用於新下載的html注入代碼。 – Dreadfulgravy

+0

你使用任何JavaScript庫,如jQuery?在jQuery中,函數.html()解析返回的javascript以及返回的html。它在某種程度上像eval()這樣的函數,評估在返回的HTML中混合的腳本。 – Joseph

+0

我正在使用jQuery的ajax函數將數據加載到div中。我會試一試。 – Dreadfulgravy

0

保持簡單。您不需要AJAX來構建簡單的CMS。只需支持處理查詢參數,例如?edit = true即可訪問您的網頁。當服務器接收到該信息時,將頁面放到支持代碼編輯的編輯器中,如EditArea。爲了節省,簡單的HTTP將數據發回服務器,並將其存儲回數據庫,甚至更好,直接存回磁盤。如果你這樣做了,你可以將它連接起來直接編輯每個頁面的php文件。是的,很多人都這樣做:)祝你好運。

+0

其實我已經創建了一個基於PHP的後端,它做我需要它做的一切,所以這不是問題。我試圖做的是學習如何製作網絡應用程序,並以此方式進行,因爲我相信這是一個很好的學習體驗。 – Dreadfulgravy