Etable/MVC

出自六年制學程
跳轉到: 導覽搜尋

概述

M

V

C

Form

HTML5 之下各種表單元素的樣子,請參考HTML/表單

以下列舉 etable 的各種 formType

formType欄型物件參考
選單select皆可XoopsFormSelectrecommend.php
連動選單select2皆可XoopsFormSelecttodo.php
連動選單select22皆可XoopsFormSelecttodo.php
單選radio皆可XoopsFormRadiotodo.php
是否擇一radioyn皆可XoopsFormRadioYN
核取方塊checkbox皆可XoopsFormCheckBoxtodo.php
複選checkbox以;間開的長字串XoopsFormCheckBoxtodo.php
位元複選bitCheckbox整數XoopsFormCheckBoxemUsers.php
日期date日期或字串XoopsFormText配小日曆todo.php
時分秒time時間或字串XoopsFormTime
日期時間datetimedatetimeXoopsFormDateTimeCalendar-.php
文字區塊autotextXoopsFormTextAreatodo.php
背景填值hidden皆可XoopsFormHiddentodo.php,showNc.php
Unix時間unix_time整數XoopsFormHiddensharingBooksToBorrow.php
切換鈕oneWaySwitchoneWaySwitchXoopsFormRadiotodo.php
函式function不改動欄值,只改變欄值的表現recommend.php,showNc.php
分號換行wrap不改動欄值,只改變欄值的表現
即時選單searchSelect代碼欄XoopsFormCatchText(by jj)sharingBooksToBorrow.php


派值範例:
  $formType=array('長欄名'=>array('select',array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)),
                  '長欄名'=>array('select2',第一選單陣列,第二選單長欄名,第二選單二維陣列,第二選單以提示代表欄值),
                  '長欄名'=>array('select22',array(0=>'===請選擇===')),
                  '長欄名'=>array('radio' ,array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)),
                  '長欄名'=>array('radioyn',array('0之提示','1之提示')),
                  '長欄名'=>array('checkbox',array('勾選後送值'=>'提示')),
                  '長欄名'=>array('checkbox',array('勾選後送值'=>'提示','勾選後送值'=>'提示','勾選後送值'=>'提示',…)),
                  '長欄名'=>array('bitCheckbox',array('1'=>'提示','2'=>'提示','4'=>'提示',…)),
                  '長欄名'=>array('date'),改畢,因欄值'%Y-%m-%d'是小日曆認得的格式,所以預選日期為欄值日期
                  '長欄名'=>array('time'),
                  '長欄名'=>array('datetime'),
                  '長欄名'=>array('auto',array('plain','html','wiki','tex')),改畢,$this->formType中未定義,則$this->fields[$i]['formType']會自動將該欄定為auto型,如欄型為TEXT則form出textarea,其他出文字欄。第二元素為語法組合陣列,預設為plain(純文本),要wiki型,欄型須為TEXT,該改。
                  '長欄名'=>array('auto',array('plain','html','wiki','tex'),array('showColExplain'=>'填寫提示')),
                  '長欄名'=>array('text',array('showColExplain'=>'填寫提示')),
                  '長欄名'=>array('rangeNumber',array('min'=>'下限值','max'=>'上限值','step'=>'步進值','showColValueGuide'=>'函式名')),
                  '長欄名'=>array('file',array('docsPath'=>文件根目錄,'paths'=>可選的路徑陣列,'showColValueGuide'=>'函式名')),
                  '長欄名'=>array('hidden',函式名,表單元素出現時機),
                  '長欄名'=>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('searchSelect',array(''=>'===輸入提示===')),
                  '長欄名'=>array('function',函式名),
                  '長欄名'=>array('wrap'),
                  );

searchSelect/searchSelect2 派值範例 兩者作用一樣,都是產生「一個部分文字輸入框 + 連動選單」,差別在:

  1. searchSelect:一上一下兩個欄,範例為 http://jendo.org/jendo/6year/sharingBooksToBorrowOld.php
  2. searchSelect2:一左一右,組成一組「欄位盤」,範例為 http://jendo.org/jendo/6year/sharingBooksToBorrow.php

select2/select22 派值範例 兩欄為連動關係,須同時存在

例如,依 ABC 欄的選擇結果,連動變換 DEF 欄的選單,則 ABC 欄與 DEF 欄的派值範例如下:
'ABC'=>array('select2',array(''=>'===請選擇===','1'=>'食','2'=>'衣','3'=>'行'),'DEF',$二維,1),
'DEF'=>array('select22',array(0=>'===請選擇==='))

進一步說明 ABC 欄的派值指示陣列

第0元素第1元素第2元素第3元素第4元素
select2array(''=>'===請選擇===','1'=>'食','2'=>'衣','3'=>'行')DEF$二維1(或0)
欄型第一選單陣列第二選單長欄名第二選單二維陣列第二選單以提示代表欄值

指示前須先定義 $二維(第二選單二維陣列)如下:

$二維=array();
$二維['1']['']='===請選擇===';
$二維['1']['1']='內食';
$二維['1']['2']='外食';
$二維['2']['']='===請選擇===';
$二維['2']['1']='衣帽';
$二維['2']['2']='美容保養';
$二維['2']['3']='其他';
$二維['3']['']='===請選擇===';
$二維['3']['1']='車資';
$二維['3']['2']='油錢';
$二維['3']['3']='停車費';
$二維['3']['4']='其他';

而被連動欄位的選單指示則較為固定:

長欄名'=>array('select22',array(0=>'===請選擇==='))

在此例中為:

'DEF'=>array('select22',array(0=>'===請選擇==='))
addElements($i,$value)
製造表單中各可「插、編」欄
XoopsFormCheckBox(欄的colalias,f[欄的as_name][欄的colname],$checked)

表格

  1. 資料表欄位
  2. formType 中的欄位類別
  3. 表單元件
  4. 使用者動作
  5. 對資料表欄位的動作

桃園市自主學習3.0實驗室推薦表格

  1. 本推薦表單的功用(描述性文字)
  2. 姓名(簡答)
  3. email地址(簡答)
  4. 您欲參與的工作項目:維基頁撰寫,公開課學員或助教,影片剪輯與拍攝,伺服器維護與程式撰寫(多選方塊)
  5. 您的身份為:自學生、團體或機構實驗教育學生、公立學校學生、大學生、社會人士(單選)
  6. 推薦者能開始工作的月份:2月,3月,4月,4月以後(單選)
  7. 「若被推薦者欲擔任助教工作請回答」能否於2/16-4/13,每週三13:00-17:00至科教館擔任課程助教:能參與,不能參與(共計9週)
  8. 誠摯感謝您的推薦。(描述性文字)

「桃園市自主學習3.0實驗室推薦表單」網頁,資料庫,程式碼對照表

表單元件 資料表欄位 formType欄位類別 使用者動作 對資料表欄位的動作
  • 文字方塊:表單功能說明與描述
    *可輸入文字方塊:姓名
    *可輸入文字方塊:信箱
    *核取方塊(多選):工作項目
    *單選方格:身份
    *單選方格:工作月份
    *單選方格:能否擔任助教
    *按鈕:確認送出
    *文字方塊:已收到表單,感謝填寫
1.sid(自動編號)
2.cn(姓名)
3.email(信箱)
4.workItem(工作項目)
5.type(身份)6.workTime(可工作月份)
7.isAssistant(能否當助教)

1.
2.字串
3.字串
4.'workItem'=>array('checkbox',array('1'=>'維基頁撰寫','2'=>'公開課學員or助教','3'=>'影片剪輯與拍攝','4'=>'伺服器維護&程式撰寫')),
5.'type'=>array('radio' ,array('1'=>'自學生','2'=>'團體或機構實驗教育學生','3'=>'大學生','4'=>'大學生','5'=>'社會人士'))
6.'workTime'=>array('radio',array('1'=>'2月','2'=>'3月','3'=>'4月','4'=>'4月以後'))
7.'isAssistant'=>array('radio',array('0'=>,'1'=>'可參與','2'=>'無法參與'))

1.點選「填寫表單」按鈕
2.輸入姓名
3.輸入郵件地址
4.勾選工作項目
5.點選身份別
6.點選工作月份
7.點選能否擔任助教
8.點選確認送出按鈕
1.新增一筆資料:自動編號
2.新增一筆資料:姓名
3.新增一筆資料:郵件地址
4.新增一筆資料:工作項目「值」
5.新增一筆資料:身份別「值」
6.新增一筆資料:工作月份「值」
7.新增一筆資料:能否擔任助教「值」
8.完成一列表單資料

參考Etable/開發#欄位種類