Etable/form/addElements

出自六年制學程
在2022年7月24日 (日) 22:46由丁志仁對話 | 貢獻所做的修訂版本

跳轉到: 導覽搜尋
addElements($i,$value)
$i 代表 select 的第幾欄
$value 代表傳入欄值

$lc_name=$this->fields[$i]['lc_name'];

會將該欄的長欄名,如「住宿」,放入 $lc_name 。

$xoopsUser

  1. 是一個物件
  2. 專門給欄名為「uname」者使用
  3. 其方法 getVar('uname') 會取回註冊名

XoopsForm (在 form.php 中定義)

表單的抽象結構

諸屬性

  1. $_action:後送目的地
  2. $_method:後送方法
  3. $_name:表單名
  4. $_title:表單的抬頭
  5. $_elements:集合各表單元素構成的陣列
  6. $_extra:form 標籤內的額外訊息
  7. $_extra1:待定義
  8. $_extra2:表單後方的額外訊息
  9. $_required:必填各表單元素構成的陣列

諸方法

  1. 初始方法 XoopsForm($title, $name, $action, $method="post", $addtoken=false)
    • 取傳入的 $title 為物件抬頭
    • 若傳入的 $name 非為空字串即為物件名,不然物件名預設為 "xoops_form"
    • 取傳入的 $action 為物件後送目的地
    • 取傳入的 $method 為物件後送通導;此項未設,預設止 POST 通道
    • 丁丁要忽略 XoopsFormHiddenToken
    • $this->addElement(new XoopsFormHidden('skipValidationJS', 0));
    • $this->setExtra('onsubmit="return xoopsFormValidate_'.$this->getName().'();"');
  2. getTitle():送物件抬頭
  3. getName():送物件名
  4. getAction():送物件目的地
  5. getMethod():送物件通道
  6. addElement(&$formElement, $required=false):$_elements 與 $_required 要不要加一元素
  7. &getElements($recurse = false):處理遞歸的表單元素
  8. getElementNames():取所有表單元素名構成陣列
  9. &getElementByName($name):依表單元素名送回表單元素物件
  10. setElementValue($name, $value):對表單元素以該元素的 setValue 方法派入 $value
  11. setElementValues($values):$values 為陣列,對眾表單元素扎批次派值
  12. &getElementValue($name):對表單元素以該元素的 getValue 方法取值
  13. &getElementValues():對表單所有元素以該元素的 getValue 方法取值,並構成值的陣列
  14. setExtra(額外字串,取代=false,$i=):設定額外資訊,預設為添附;也可以設為取代。
  15. getExtra($i=):送回額外資訊
  16. setRequired(&$formElement):設定某表單元素為必填欄位
  17. &getRequired():傳回所有表單的必填欄位
  18. insertBreak($extra = null):無內容
  19. render():無內容
  20. display():依 form 物件設定的 render() 表現內容
  21. renderValidationJS($withtags=true):造 javascript 驗證函式
  22. assign(&$tpl):樣版化各表單元素

表單實體化:以下說明 themeform.php,另外還有 SimpleForm 和 TableForm ,都更簡單

諸方法

  1. insertBreak(…):未使用
  2. render():實體化
    • 用 getName() 取表單名與表單 id
    • 用 getAction() 取目的地
    • 用 getMethod() 取後送通道
    • 用 getExtra() 補上 form 標籤內額外字串
    • 將 表單元素->isHidden() 者實體化
    • 出 <table>
    • 第一列跨兩欄,放 getTitle()
    • 其餘各列:
      1. 第一欄出 表單元素->getCaption(),如是是必填欄位再加「*」
      2. 表單元素->getDescription() 非空字串,再加「換行換行加粗『表單元素->getDescription()』」
      3. 第二欄出 表單元素->render()
    • 如果有必填欄位最後一列跨兩欄,放「* = 必填欄位,務請填寫。」
    • 最後一行之後,</table>之前放 $_extra2 ,可以寫成跨兩欄,也可以寫成兩欄;可以寫 th 也可以寫 td
    • 出 </table>
    • 出 </form>
    • 出 renderValidationJS( true )

XoopsFormElement

諸屬性

  1. $_name:表單元素名稱
  2. $_id:表單元素 id ,預設為空字串
  3. $_caption:表單元素抬頭
  4. $_accesskey 預設為空字串
  5. $_class:表單元素 CSS 類別,預設為空字串
  6. $_hidden:表單元素是否為 hidden ,預設為 false
  7. $_extra
  8. $_extra1
  9. $_extra2
  10. $_required:表單元素是否為必填欄位,預設為 false
  11. $_description

諸方法

  1. XoopsFormElement():跳離
  2. isContainer():傳回假
  3. setName($name):trim 後放入 $_name
  4. getName(true):取表單元素名
    • 預設要轉碼,不轉碼須設 false
    • 用 htmlspecialchars(字串) 將 HTML 符號變成不可執行的符號,預設轉 < > "
      htmlspecialchars(字串,ENT_QUOTES),加轉 '
    • 還要轉 &,至少要轉這五個