# addFormItem
用來添加一個表單項目
注意:如果需要給標單項設置默認值,請參考setFormData章節
## 參數:
@param $name 字段名稱
@param $type 字段類型(支持的類型在下面)
可設置的值有:
hidden : 隱藏字段,一般于修改信息頁面存儲如數據ID等隱藏信息
static : 靜態字段,無法修改,也不會隨著表單提交后臺,僅僅是顯示用
num : 整數類型
price : 價格類型0.00
text : 一行文本,最常用的類型
textarea : 多行文本,常用于類似文章簡介等
array : 數組類型,這個比較特殊,它存儲的value不能直接使用,需要使用parse_attr()函數格式化為數組才可以使用
password : 密碼類型
radio : 單選框,注意單選框需要在第五個參數指定選項列表
checkbox : 復選框,注意復選框需要在第五個參數指定選項列表
select : 下拉框,注意下拉框需要在第五個參數指定選項列表
date : 日期類型,精確到天
datetime : 日期類型,精確到秒
picture : 上傳一張圖片
pictures : 上傳多張圖片
file : 上傳一個文件
files : 上傳多個文件
media : 上傳一個媒體文件
medias : 上傳多個媒體文件
kindeditor: kindeditor可視化編輯器
editormd : Markdown編輯器
linkage : [商業版] 三級聯動類型,默認是中國的省市區(縣)聯動,可以通過配置第6個參數自己指定數據源
bdmap : [商業版]百度地圖類型(國內訪問),百度地圖類型可以配置第六個參數來與一個text字段聯動,用戶在text字段里輸入地點,及時不斷的更新地圖自動定位
gmap : [商業版]谷歌地圖類型(國外訪問),谷歌地圖類型可以配置第六個參數來與一個text字段聯動,用戶在text字段里輸入地點,及時不斷的更新地圖自動定位
mapbox : [商業版]Mapbox地圖類型(國內外均可訪問),Mapbox地圖類型可以配置第六個參數來與一個text字段聯動,用戶在text字段里輸入地點,及時不斷的更新地圖自動定位
tags : 標簽TAG類型
board : 拖動排序用的不多,目前主要是CMS文檔模型里的字段排序是用了
@param $title 字段名,比如:文章封面
@param $tip 字段說明,比如:圖片大小小于1M這樣
`可選`@param $options radio/checkbox/select三種類型必須配置此參數,格式是一個key->value的一維數組
`可選`@param $extra 這個參數屬于多功能參數,針對每種類型使用都不一樣
$extra是一個字符串,那么對所有類型的作用都是一樣的,只是用來給表單項目包圍的div加一個css的自定義class
$extra是一個數組:
三級聯動:
首先自定義一個三級聯動的數組如下:
### key=value模式
/**
* 區域
* @author jry <598821125@qq.com>
*/
public function suburb($id) {
$list['0'] = array(
'p' => '曼哈頓Manhattan',
'c' => array(
'0' => array(
'n' => '下城Downtown',
'a' => array(
'0' => array(
's' => '測試1',
),
'1' => array(
's' => '測試2',
)
)
),
'1' => array(
'n' => '中城Midtown',
)
)
);
$list['1'] = array(
'p' => '新澤西NewJersey',
'c' => array(
'0' => array(
'n' => 'Newport',
),
'1' => array(
'n' => 'Jersey City',
)
)
);
$list['2'] = array(
'p' => '布魯克林Brooklyn',
);
$list['3'] = array(
'p' => '皇后區Queens',
'c' => array(
'0' => array(
'n' => '長島市Long Island City',
),
'1' => array(
'n' => '艾姆赫斯特Elmhurst',
)
)
);
$list['4'] = array(
'p' => '其他區域',
);
return $id ? $list[$id] : $list;
}
### key!=value模式
/**
* 區域
* @author jry <598821125@qq.com>
*/
public function suburb($id) {
$list['0'] = array(
'p' => array(
'key' => 'mhd',
'value' => '曼哈頓Manhattan',
),
'c' => array(
'0' => array(
'n' => array(
'key' => 'xcq',
'value' => '下城Downtown',
),
'a' => array(
'0' => array(
's' => array(
'key' => 'test_key',
'value' => 'test_value',
),
),
)
),
'1' => array(
'n' => array(
'key' => 'zcq',
'value' => '中城Downtown',
),
'a' => array(
'0' => array(
's' => array(
'key' => 'test_key2',
'value' => 'test_value2',
),
),
)
)
)
);
$list['1'] = array(
'p' => '新澤西NewJersey',
'c' => array(
'0' => array(
'n' => 'Newport',
),
'1' => array(
'n' => 'Jersey City',
)
)
);
$list['2'] = array(
'p' => '布魯克林Brooklyn',
);
$list['3'] = array(
'p' => '皇后區Queens',
'c' => array(
'0' => array(
'n' => '長島市Long Island City',
),
'1' => array(
'n' => '艾姆赫斯特Elmhurst',
)
)
);
$list['4'] = array(
'p' => '其他區域',
);
return $id ? $list[$id] : $list;
}
然后:
$rent = D('Rent');
$temp['self']['citylist'] = $rent->suburb();
->addFormItem('suburb', 'linkage', '區域', '區域', null, $temp)
即可實現三級聯動自定義
百度地圖:
->addFormItem("address", "text", "詳細地址", "如:南京市鼓樓區廣東路38號")
->addFormItem("address_gps", "bdmap", "地圖位置", "地圖位置", null, array('self' => array('city' => '武漢', 'auto' => 'address')))
上面這樣就能實現地圖默認定位城市為武漢,并且自動隨著用戶在address里輸入文字不斷刷新自動定位。
其他待擴展或自定義...
## 用法示例
// 使用FormBuilder快速建立表單頁面。
$rent = D('Rent');
$temp['self']['citylist'] = $rent->suburb();
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('新增房源') // 設置頁面標題
->setPostUrl(U('add')) // 設置表單提交地址
->addFormItem('title', 'text', '標題', '房源標題')
->addFormItem('number','text','房源編號','如:V001')
->addFormItem('suburb', 'linkage', '區域', '區域', null, $temp)
->addFormItem('address', 'text', '詳細地址', '詳細地址')
->addFormItem('address_gps', 'bdmap', '地圖位置','地圖位置')
->addFormItem('bedroom_num', 'select', '臥室數量', '0', $rent->bedroom_num())
->addFormItem('bathroom_num', 'select', '衛浴數量', '0', $rent->bathroom_num())
->addFormItem('price', 'text', '月租價', '0.00')
->addFormItem('room_source','text','房屋來源','房東自有房源/轉租房源')
->addFormItem('rentdate_type','checkbox','租期類型','',$rent->rentdate_type())
->addFormItem('rent_type','select','出租類型','',$rent->rent_type())
->addFormItem('source_type','select','房源類型','',$rent->source_type())
->addFormItem('furniture','select','有無家具','',$rent->furniture())
->addFormItem('rent_date','date','可出租日期','')
->addFormItem('area_sqft','num','面積(sqft)','sqft')
->addFormItem('area_floor','text','面積(層)','層')
->addFormItem('year','num','年代','年')
->addFormItem('to_station','text','步行至公交所需時間','min')
->addFormItem('common', 'checkbox', '配置設施', '配置設施', $rent->common())
->addFormItem('description','textarea','房源描述','房源描述')
->addFormItem('cover', 'picture', '封面', '封面')
->addFormItem("images", "pictures", "物品圖集", "物品圖集")
->display();
}
- 簡介
- 環境要求
- 安裝系統
- 目錄結構
- 常見問題
- 基礎知識
- 編輯器
- 前端規范
- 前端框架文檔
- Builder教程
- Builder的來歷
- ListBuilder使用
- setMetaTitle
- addTopButton
- setSearch
- addSearchItem
- setTabNav
- addTableColumn
- setTableDataList
- setTableDataListKey
- setTableDataPage
- addRightButton
- alterTableData
- setExtraHtml
- setTemplate
- FormBuilder使用
- setMetaTitle
- setTabNav
- setExtraItems
- setPostUrl
- addFormItem
- setFormData
- setExtraHtml
- setAjaxSubmit
- setTemplate
- 擴展FormBuilder
- 模塊開發
- 創建模塊
- 描述文件
- 模型( M )
- 模版( V )
- 控制器( C )
- API接口
- 核心模塊
- 文件上傳
- 微信小程序模塊
- 注冊登陸接口
- 錢包模塊
- 統一支付
- Cms模塊
- 幻燈片接口
- 文檔列表接口
- 文檔詳情接口
- 發表評論接口
- 評論列表接口
- 收藏的文檔接口
- 收藏接口
- 分類列表接口
- IM模塊
- 發送消息接口
- 最近聊天列表接口
- 查詢新消息接口
- 插件相關
- 短信插件
- 支付插件
- 支付寶支付
- 微信支付
- 站群模塊
- 模板開發
- 準備工作
- 目錄結構
- 數據調用
- 專題
- 插件開發
- 圖片顯示
- 獲取用戶信息
- 判斷用戶登陸
- 表單提交AjaX
- 文件上傳
- 2.0兼容寫法
- 模板標簽
- 核心模塊
- Cms模塊
- 欄目分類調用
- Cordova
- 配置跨域支持
- 本地開發調試教程
- 打包成apk和ipa
- 自定義APP信息
- 常見問題
- 申請Apple開發者賬戶
- 多主題開發
- 新建主題
- 目錄結構
- 模板變量
- 定制安裝部署