etable手冊
login 載入 DB.php 繼承 DB| 序 | 引數 | 屬性名 | 資料型態 | 預設值 | MVC | 新增屬性 |
|---|---|---|---|---|---|---|
| 1 | 查詢命令 | sql | 字串或陣列 | 無 | M | |
| 2 | 顯示「插,編,刪」連結 | editable | 整數 | 0 | V | editable |
| 3 | 每頁筆數 | perpage | 整數 | 15 | C | |
| 4 | 欄名代稱 | colAlias | 陣列 | 空陣列 | M | |
| 5 | 額外欄 | moreCol | 陣列 | 空陣列 | V | |
| 6 | 顯示型態 | dispType | 字串 | disp_table | V | |
| 7 | 可「插編刪」諸表 | editables | 陣列 | 空陣列 | M | |
| 8 | 表單中諸欄描述 | formType | 陣列 | 空陣列 | M | field[$i][formType] |
| 9 | 是否翻譯 | tran | 布林 | 0 | C | |
| 10 | 輸入驗證 | formValidate | 布林 | 0 | C | field[$i][formValidate] |
由於多表且各表可能有代稱,所以定義:
表代稱(as_name),例如select * from DVD as d,d即為表DVD之代稱。
長欄名(lc_name),只有一表時為「欄名」,多表時為「表代稱.欄名」。例如select Name from DVD as d,「d.Name」即為長欄名(lc_name)。
一、$sql:查詢命令,須為select,不可帶limit。
可為字串,亦可為陣列。
(一)字串:
(二)陣列:
二、$editable:顯示「插,編,刪」連結。
三、$perpage:每頁筆數。
四、$colAlias:欄名代稱。
五、$moreCol:額外欄。
六、$dispType:顯示型態。
七、$editables:可插諸表,可編諸表,可刪諸表。
八、$formType:指定欄位的表單元件型態。
作用於以下方法:main 中 輸出蒐尋排序表單、javascript之驗證區、相依選單前置處理,ana_fields 之 抄入或製作各欄之 formType 屬性,disp_table_body 中欄數的決定,col_value 中各欄顯示值的決定,form_edit 及 form_ins 中 hidden 及 unix_time之條件處理,addElements 中 hidden外其他欄型處理。給程式產生器用的 search 段處理函式。
$formType=array('長欄名'=>array('select',array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)),
'長欄名'=>array('select2',第一選單陣列,第二選單長欄名,第二選單二維陣列,第二選單以提示代表欄值),
'長欄名'=>array('select22',array(0=>'===請選擇===')),
'長欄名'=>array('searchSelect', array(''=>'===請輸入姓名或公司名稱===')),
'長欄名'=>array('radio' ,array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)),
'長欄名'=>array('radioyn',array('0之提示','1之提示')),
'長欄名'=>array('checkbox',array('勾選後送值'=>'提示')),
'長欄名'=>array('date',array('ifFormat'=>'daFormat')),改畢,因欄值'%Y-%m-%d'是小日曆認得的格式,所以預選日期為欄值日期
'長欄名'=>array('auto',array('plain','html','wiki','tex')),改畢,$this->formType中未定義,則$this->fields[$i]["formType"]會自動將該欄定為auto型,如欄型為TEXT則form出textarea,其他出文字欄。第二元素為語法組合陣列,預設為plain(純文本)。
'長欄名'=>array('hidden',函式,表單種類),
'長欄名'=>array('function',函式名),
'長欄名'=>array('password',array('編碼方式'=>'編碼指示')),編碼方式目前有plain,其指示為1,MD5其指示有
'長欄名'=>array('unix_time',"Y-m-d<bR>H:i:s",表單種類),待改,因欄值'%s'是小日曆不認得的格式,所以預選日期為跑到當天日期,要認得欄值格式須為「年-月-日 [10] 時:分」,用Calendar.setDateFormat('%s');無效。此事無解,參看http://192.168.3.175/et/class/calendar/jstest.htm,不是每一種格式jscalendar都可以認得出日期,如Date #0:的%s會解不出日期,Date #2:的…會解錯日期,Date #4:解不出日期。
'長欄名'=>array('oneWaySwitch',array(0=>'按鈕字',值=>'按完字')),
'長欄名'=>array('wrap'),
);
| 型態 | 插表單中 | 編表單中 | body不翻譯時 | body翻譯時 |
|---|---|---|---|---|
| select | select諸option | 值 | 提示文字 | |
| radio | 諸radio | 值 | 提示文字 | |
| radioyn | 兩radio | 值 | 提示文字 | |
| checkbox | 一checkbox | 值 | 提示文字 | |
| date | yy-mm-dd及小日曆 | 值 | 值 | |
| unix_time | 小日曆 | 指定的date()樣式 | ||
| 隱藏欄後送mktime() | ||||
| hidden | 隱藏欄後送函式值 | 不顯示 | ||
九、$tran:是否翻譯。
十、$formValidate:輸入驗證陣列。
'.+' 必填
'^[^\\s]+@[^\\s]+\\.[^\\s]+$' email
'^[1-9]\\d*$' 正整數
'^[A-Z]{1}[0-9]{9}$' 身份證號
'^(\\d+|[1-9]\\d*)$' 非負整數
'^(-?(\\d+|[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+))$' 數字
'^(\\d+|[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+)$' 非負數值
'^((19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01]))$' 合理的日期