[jQuery] 用Jeditable快速更新MySQL資料

Jeditable是一個用來達成「就地編輯」(Edit In Place)目的的jQuery plugin,以下簡單介紹這個外掛的用法,以及如何將編輯完成的內容更新到MySQL資料表中。

在本文的範例中,要更新的是如下的資料表:

通常我們會把資料表的資料拉到網頁裡,如下圖,前兩個欄位即是要利用Jeditable來編輯的資料。第一欄(對應資料表category欄)要使用文字框(text input)來編輯,第二欄(對應資料表parent欄)則是用下拉選單(select)編輯。

將要更新的資料以div包住,並加上class和id屬性。請注意id值的數字是用php動態產生的,即是資料表的cId欄位值

使用這個外掛的語法如下:

在這幾個參數裡面,第一個參數「save.php」即是將更新內容存入資料庫的後端處理程序,其他的參數應該不難理解;比較值得介紹的是「loadurl」這個參數,如果我們希望動態產生下拉選單的內容,就必須使用loadurl來加入外部資料。這個部份請參閱Jeditable官方網頁的「How to use selects?」一節。

完成上述步驟後,就地編輯就會開始作用了。點擊可編輯的文字時,Jeditable會自動產生一張表單,在本例中會依照「type」參數的設定,出現文字框或下拉選單:

按下「修改」送出表單時,Jeditable預設後端(save.php)會接收到兩個POST變數:$_POST['id']和$_POST['value'](變數名稱也是預設的,可以使用id和name兩個參數修改)。$_POST['id']的值等於前述放在div裡的id值,$_POST['value']則是在表單欄位內輸入的值。

後端(save.php)更新資料表的程式碼如下(參考來源:DeviLib.com):

完成後的成品網頁請按此測試。有個缺憾是,這個外掛無法直接搭配jQuery Validation一起使用,必須另行客製(有善心人士可以提供嗎?),所以我是用php在後端做資料驗證的。想了解更多資訊,請務必到Jeditable官方網頁一遊。有任何的問題指教,也歡迎與我討論。

WordPress Plugin: SyntaxHighlighter

2008-02-08_2307

這次更新WordPress的時候也安裝了這個外掛:SyntaxHighlighter,一樣是speckyboy介紹的。它和之前使用的Google Code Prettify相較之下的優點在於可以顯示行號,並且在Option內還可以作以下項目的設定:

2008-02-08_2313

  • Supported languages: 可選擇要支援的程式語言。
  • Textarea Cols / Rows: 可設定文字區域的尺寸。
  • Make the Textbox Collapsible? 原始碼是否要預設為展開。
  • Hide Controls on top? 是否關閉上方的控制項目(包括純文字顯示、列印)。
  • Hide Gutter? 是否隱藏左側行號。
  • Hide Columns? 是否隱藏上方的欄位號。

有別於Google Code Prettify採用將html元素pre或code加上樣式的作法,SyntaxHighlighter的用法是[ source: 程式語言名稱]程式碼[/source],在前端會將程式碼顯示在textarea裡面,樣式的設定也很簡單明瞭。是一個值得安裝的外掛。

IdeaGrapes已升級至WordPress 2.0.2

觀望了好一陣子,今天終於把WordPress升級到2.0.2。

利用DreamHost提供的One-Click Installs,整個升級的過程真的蠻輕鬆的。雖然網站上面有註明Themes和Plugins要在升級完成之後重新安裝,不過我實際使用的結果,其實兩個目錄底下的檔案也會完整備份下來,不用重新安裝一樣能用。

目前我唯一因為升級而停用的Plugins是Tiger-Style Administration,顯然它和2.0.2的相容性還有點問題(Write Post的MCE編輯器整個破掉怪怪的),不知作者是否會推出修正版?

如果各位在使用上有發現任何異常之處,也麻煩告訴我一聲,感謝。