Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「八小時模組開發」目錄
MarkDown
11. 完成新增功能(30分鐘)
1. 開發環境(30分鐘)
2. XOOPS模組基本結構(40分鐘)
2-1 xoops_version.php
3. 建立資料庫(40分鐘)
3-1 xoops_version.php
4. 建立前台搜尋頁面(30分鐘)
4-1 xoops_version.php
4-2 index.php
4-3 my_dict_index.html
5. 建立搜尋表單(40分鐘)
5-1 index.php
5-2 my_dict_index.html
6. 從資料庫撈出資料(40分鐘)
6-1 index.php
6-2 my_dict_index.html
7. 製作後台管理頁(30分鐘)
7-1 index.php
7-2 admin/menu.php
7-3 admin/main.php
7-4 xoops_version.php
7-5 my_dict_adm_main.html
8. 讀出資料並分頁(40分鐘)
8-1 templates/my_dict_adm_main.html
8-2 templates/my_dict_adm_main.html
9. 刪除資料(30分鐘)
10. XOOPS的表單物件(40分鐘)
11. 完成新增功能(30分鐘)
12. 完成編輯功能(40分鐘)
13. XOOPS文字過濾(30分鐘)
13. XOOPS文字過濾(30分鐘)
八小時模組開發 ======= ### 一、關於編輯 1. 編輯和新增幾乎是一樣的動作,差別僅在於:編輯會指定要修改哪一筆資料。 2. 因此,在秀出表單之前,需先將資料抓出,並塞入表單做為預設值。 3. 另外,表單需加入一個「流水號」的隱藏欄位,如此,當使用者填完送出後,系統才知道要修改哪一篇文章。 ### 二、編輯的流程設定 1. 由於樣板中有加入編輯的op: ```
編輯
``` 2. 所以流程也要多一組對應設定: ``` case "edit": add_form($sn); break; ``` 3. 和新增一樣呼叫 add\_form() 函數,唯一不同的是,編輯時要傳入 $sn,如此,系統才知道要修改的到底是哪一筆資料。 ### 三、修改 add\_form() 函數 1. 編輯和新增不同的地方有三: 1. 需傳入$sn 2. 需多一個隱藏欄位 sn 3. 下一個op不會是insert,應為update 2. 故,我們將函數改為: ``` //編輯詞彙表單 function add_form($sn=""){ global $xoopsTpl,$xoopsDB; include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php"); if($sn){ $sql="select eng,cht from ".$xoopsDB->prefix("oxford")." where `sn`='{$sn}'"; $result=$xoopsDB->queryF($sql) or redirect_header('index.php', 3, mysql_error()); list($eng,$cht)=$xoopsDB->fetchRow($result); $op="update"; }else{ $op="insert"; } $form = new XoopsThemeForm('編輯詞彙', '', 'main.php', 'post', true); $input_eng =new XoopsFormText('英文', 'eng', 20 , 255 , $eng); $input_cht =new XoopsFormText('中文解釋', 'cht', 20 , 255 , $cht); $hidden_op =new XoopsFormHidden('op', $op); $hidden_sn =new XoopsFormHidden('sn', $sn); $submit_btn =new XoopsFormButton('', '', '儲存', 'submit'); $form->addElement($input_eng); $form->addElement($input_cht); $form->addElement($hidden_op); $form->addElement($hidden_sn); $form->addElement($submit_btn); $f=$form->render(); $xoopsTpl->assign("form" ,$f); } ``` ### 四、流程新增update設定 1. 當使用者按下儲存時,如果是編輯,則op為update,因此,流程要多一組設定: ``` case "update": update($sn); break; header("location:../index.php?eng={$_POST['eng']}"); ``` ### 五、新增update()函數 ``` //更新詞彙 function update($sn=""){ global $xoopsDB; $eng=$_POST['eng']; $cht=$_POST['cht']; $sql="update `".$xoopsDB->prefix('oxford')."` set `eng`='{$eng}' , `cht`='{$cht}' where sn='$sn'"; $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error()); } ```
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
40
人線上 (
5
人在瀏覽
線上書籍
)
會員: 0
訪客: 40
更多…