Etable/form:修訂版本之間的差異
出自六年制學程
(→三階段流程說明) |
(→(二)addElements($i,$value)) |
||
第 37 行: | 第 37 行: | ||
====(二)addElements($i,$value)==== | ====(二)addElements($i,$value)==== | ||
*處理會員欄,「$value=$xoopsUser->getVar('uname');」是以 xoops 為外套時期使用,應移除 | *處理會員欄,「$value=$xoopsUser->getVar('uname');」是以 xoops 為外套時期使用,應移除 | ||
− | * | + | *處理formType中各欄,除hidden、wrap以外諸欄 |
*#unix_time:出時分秒小日曆 | *#unix_time:出時分秒小日曆 | ||
*#date:出日期小日曆 | *#date:出日期小日曆 | ||
第 43 行: | 第 43 行: | ||
*#datetime:用 XoopsFormDateTime | *#datetime:用 XoopsFormDateTime | ||
*#select:用 XoopsFormSelect 及其中的 addOptionArray(選項陣列) | *#select:用 XoopsFormSelect 及其中的 addOptionArray(選項陣列) | ||
− | *# | + | *#searchSelect:用 XoopsFormSelect 及其中的 addOptionArray(選項陣列) |
+ | *#select2:用 XoopsFormSelect 及其中的 setExtra(" onChange='createOpt…'",false)、addOptionArray(選項陣列) | ||
+ | *#radio:用 XoopsFormRadio 及其中的 addOptionArray(選項陣列) | ||
+ | *#checkbox:用 XoopsFormCheckBox(欄代名,'f[表代名][欄名]',核取陣列或null) 及其中的 addOptionArray(選項陣列) | ||
+ | *#radioyn:用 XoopsFormRadioYN | ||
+ | *#auto:用 XoopsFormTextArea | ||
+ | *#其他(如 function):用 XoopsFormText | ||
+ | *處理不在formType中的各欄,依coltype產生表單元素 | ||
+ | *#blob/binary:XoopsFormLabel(表代名,BIDNT) | ||
+ | *#blob/非binary:XoopsFormTextArea | ||
+ | *#其他:XoopsFormText | ||
===插入層次=== | ===插入層次=== |
2019年9月22日 (日) 13:00的修訂版本
三階段流程說明
(一)form_edit與form_ins
form_edit($row=array()) | form_ins() |
---|---|
new XoopsThemeForm 得到 form 物件 | |
每欄處理一輪: | |
剔除演算式且沒有表代名之欄 | |
留下允許編或允計插之欄 | |
hidden/both或hidden/edit |
hidden/both或hidden/ins或hidden/ins_only |
unix_time/both或unix_time/edit |
unix_time/both或unix_time/ins或unix_time/ins_only |
其他可編之欄,以addElements($i,$row[$i])處理 |
其他可插之欄,以: |
不可編之欄送出addElement(new XoopsFormLabel(欄代名,$row[$i]),0) |
不可插之欄送出addElement(new XoopsFormLabel(欄代名,DONTINSERT),0) |
(二)addElements($i,$value)
- 處理會員欄,「$value=$xoopsUser->getVar('uname');」是以 xoops 為外套時期使用,應移除
- 處理formType中各欄,除hidden、wrap以外諸欄
- unix_time:出時分秒小日曆
- date:出日期小日曆
- time:用 XoopsFormTime
- datetime:用 XoopsFormDateTime
- select:用 XoopsFormSelect 及其中的 addOptionArray(選項陣列)
- searchSelect:用 XoopsFormSelect 及其中的 addOptionArray(選項陣列)
- select2:用 XoopsFormSelect 及其中的 setExtra(" onChange='createOpt…'",false)、addOptionArray(選項陣列)
- radio:用 XoopsFormRadio 及其中的 addOptionArray(選項陣列)
- checkbox:用 XoopsFormCheckBox(欄代名,'f[表代名][欄名]',核取陣列或null) 及其中的 addOptionArray(選項陣列)
- radioyn:用 XoopsFormRadioYN
- auto:用 XoopsFormTextArea
- 其他(如 function):用 XoopsFormText
- 處理不在formType中的各欄,依coltype產生表單元素
- blob/binary:XoopsFormLabel(表代名,BIDNT)
- blob/非binary:XoopsFormTextArea
- 其他:XoopsFormText
插入層次
$表單=new XoopsThemeForm(抬頭,表單名,$_SERVER['PHP_SELF']);
- $選單元素=new XoopsFormSelect(抬頭,元素名,後送預設值,選項數,是否複選,id,是否span); // 前二引數必填
- $選單元素->addOptionArray($選項陣列); // 將選項放上選單元素
- $選項陣列中的諸陣列元素的索引為後送值,諸陣列元素的值為提示。
- $表單->addElement($選單元素,是否必填); // 之後才將$選單元素放入表單
- $表單->display(); // 印出表單
前後呼應
etable.php 中
/// 表單區 function addElements …new XoopsFormTime(欄代名,'f[欄名]',15,欄值); …form->addElement(上面生成的物件);
前面
// 主函式 function main // 單筆資料前置處理,含插畢、刪一筆、編一筆 if(is_array($value)){ if(isset($value['hour']) && isset($value['min'])){$value=$value['hour'].':'.$value['min'].':00';} } 以上段落出現兩次