多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 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(); }