# 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开发者账户
- 多主题开发
- 新建主题
- 目录结构
- 模板变量
- 定制安装部署