Etable/form/addElements
出自六年制學程
addElements($i,$value) $i 代表 select 的第幾欄 $value 代表傳入欄值
$lc_name=$this->fields[$i]['lc_name'];
會將該欄的長欄名,如「住宿」,放入 $lc_name 。
目錄
$xoopsUser
- 是一個物件
- 專門給欄名為「uname」者使用
- 其方法 getVar('uname') 會取回註冊名
XoopsForm (在 form.php 中定義)
表單的抽象結構
諸屬性
- $_action:後送目的地
- $_method:後送方法
- $_name:表單名
- $_title:表單的抬頭
- $_elements:集合各表單元素構成的陣列
- $_extra:form 標籤內的額外訊息
- $_extra1:待定義
- $_extra2:表單後方的額外訊息
- $_required:必填各表單元素構成的陣列
諸方法
- 初始方法 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().'();"');
- getTitle():送物件抬頭
- getName():送物件名
- getAction():送物件目的地
- getMethod():送物件通道
- addElement(&$formElement, $required=false):$_elements 與 $_required 要不要加一元素
- &getElements(遞迴 預設不遞迴):由於表單中的諸子元素中可能某一子元素本身是托盤,所以可對本表單物件的 $_elements 施以遞迴處理,直到萃取出所有非托盤的子元素再傳回。
- getElementNames():取所有表單元素名構成陣列
- &getElementByName($name):依表單元素名送回表單元素物件
- setElementValue($name, $value):對表單元素以該元素的 setValue 方法派入 $value
- setElementValues($values):$values 為陣列,對眾表單元素扎批次派值
- &getElementValue($name):對表單元素以該元素的 getValue 方法取值
- &getElementValues():對表單所有元素以該元素的 getValue 方法取值,並構成值的陣列
- setExtra(額外字串,取代=false,$i=''):設定額外資訊,預設為添附;也可以設為取代。
- getExtra($i=''):送回額外資訊
- setRequired(&$formElement):設定某表單元素為必填欄位
- &getRequired():傳回所有表單的必填欄位
- insertBreak($extra = null):無內容
- render():無內容
- display():依 form 物件設定的 render() 表現內容
- renderValidationJS($withtags=true):造 javascript 驗證函式
- assign(&$tpl):樣版化各表單元素
表單實體化:以下說明 themeform.php,另外還有 SimpleForm 和 TableForm ,都更簡單
諸方法
- insertBreak(…):未使用
- render():實體化
- 用 getName() 取表單名與表單 id
- 用 getAction() 取目的地
- 用 getMethod() 取後送通道
- 用 getExtra() 補上 form 標籤內額外字串
- 將 表單元素->isHidden() 者實體化
- 出 <table>
- 第一列跨兩欄,放 getTitle()
- 其餘各列:
- 第一欄出 表單元素->getCaption(),如是是必填欄位再加「*」
- 表單元素->getDescription() 非空字串,再加「換行換行加粗『表單元素->getDescription()』」
- 第二欄出 表單元素->render()
- 如果有必填欄位最後一列跨兩欄,放「* = 必填欄位,務請填寫。」
- 最後一行之後,</table>之前放 $_extra2 ,可以寫成跨兩欄,也可以寫成兩欄;可以寫 th 也可以寫 td
- 出 </table>
- 出 </form>
- 出 renderValidationJS( true )
XoopsFormElement (在 formelement.php 中定義)
諸屬性
- $_name:表單元素名稱
- $_id:表單元素 id ,預設為空字串
- $_caption:表單元素抬頭
- $_accesskey 預設為空字串
- $_class:表單元素 CSS 類別,預設為空字串
- $_hidden:表單元素是否為 hidden ,預設為 false
- $_extra
- $_extra1
- $_extra2
- $_required:表單元素是否為必填欄位,預設為 false
- $_description
諸方法
- XoopsFormElement():跳離
- isContainer():傳回假
- setName($name):trim 後放入 $_name
- getName(true):取表單元素名
- 預設要轉碼,不轉碼須設 false
- 用 htmlspecialchars(字串) 將 HTML 符號變成不可執行的符號,預設轉 < > "
htmlspecialchars(字串,ENT_QUOTES),加轉 ' - 還要轉 &,至少要轉以上這五個
- setAccessKey($key):$key trim 後放入 $_accesskey
- getAccessKey():取物件的 $_accesskey
- getAccessString($str):如果 $str 含 $_accesskey ,對 $str 中的 $_accesskey 畫底線
- setClass($class):將 $class trim 後放入物件的 $_class
- getClass():取物件的 $_class
- setCaption($caption):將 $caption trim 後放入物件的 $_caption
- getCaption():取物件的 $_caption
- setId($id):將 $id trim 後放入物件的 $_id
- getId():取物件的 $_id ,若為空字串,傳回 getName() 的值
- setDescription($description):將 $description trim 後放入物件的 $_description
- getDescription():取物件的 $_description
- setHidden():將物件的 $_hidden 改設為真
- isHidden():取物件的 $_hidden
- setExtra(額外字串,取代=false,$i=''):設定額外資訊,預設為添附;也可以設為取代。
- getExtra($i=''):送回額外資訊
- render():無內容
表單元素實體化
XoopsFormText
屬性
- $_size:
- $_maxlength
- $_value
方法
- XoopsFormText($caption, $name, $size, $maxlength, $value="", $id = "")
- setCaption($caption)
- setName($name)
- $_size = intval($size)
- $_maxlength = intval($maxlength)
- setValue($value)
- setId($id)
- getSize():取物件的 $_size
- getMaxlength():取物件的 $_maxlength
- getValue():取物件的 $_value
- setValue($value):將 $value 設為物件的 $_value
- render():造 <input type='text' … />
- getName()
- getId()
- getSize()
- getMaxlength()
- getValue()
- getExtra():在標籤內
- getExtra('2'):在標籤後
XoopsFormElementTray (在 formelementtray.php 中定義)
承載多個 FormElement 的托盤
屬性
- $_elements:放多個 element 的陣列
- $_required:必填欄位陣列
- $_delimeter:元素間隔,預設為
方法
- XoopsFormElementTray( $caption, $delimeter = " ", $name = "" )
- setName($name)
- setCaption($caption)
- 將 $delimeter 設為物件的 $_delimeter
- isContainer():傳回真
- isRequired():物件的 $_required 陣列非空就傳回真,否則傳回假
- addElement( &$formElement, $required = false ):物件的 $_elements 先加一元素,再看物件的 $_required 是不是也要加一元素
- &getRequired():取物件的 $_required
- &getElements(遞迴 預設不遞迴):由於本托盤的諸子元素中可能某一子元素本身也是托盤,所以可對本托盤物件的 $_elements 施以遞迴處理,直到萃取出所有非托盤的子元素再傳回。
- getDelimeter(編碼 預設不編碼):換掉 $_delimeter 中的 < > " 空白,將 HTML 符號變成不可執行的符號