## addDataTable('name值', '标题', '提示', '字段' [, '数据']) 标识符:`dataTable` >[danger] **注意:该功能仅1.4.3版本以上,并且授权版用户才有,普通版没有该功能**。如果您是授权版用户,请登录官网后,在补丁下载页面下载相应补丁。 | 参数 | 含义 | 类型 | | --- | --- | --- | | name | name值 | string | | title | 标题 | string | | tips | 提示 | string | | fields| 字段 | array | | data | 数据 | string | ``` $list_sf = [ 44 => '广东省', 33 => '浙江省' ]; // 使用ZBuilder快速创建表单 return ZBuilder::make('form') ->setPageTitle('新增') // 设置页面标题 ->addFormItems([ // 批量添加表单项 ['dataTable', 'content', '定义', [ 'SFDM' => ['type' => 'select', 'title' => '省份', 'options' => $list_sf], 'ZL' => '增量', ]], ]) ->fetch(); ``` 效果: ![](https://img.kancloud.cn/04/b7/04b7faa8c067ea3ad89a188ce86efc3d_1024x307.png) 目前仅支持“下拉菜单”和“单行文本”。 提交后,服务器接受的数据格式为: ``` ~~~ ["content"] => array(2) { ["SFDM"] => array(2) { [0] => string(2) "33" [1] => string(2) "44" } ["ZL"] => array(2) { [0] => string(7) "测试1" [1] => string(7) "测试2" } } ~~~ ``` 一般是这样处理: ``` $post = $this->request->post(); if (isset($post['content'])) { // 有新增行,需要循环处理数据 foreach ($post['content']['SFDM'] as $key => $SFDM) { // 这里处理的是省份 // 在这里可对应获取到增量列的数据 // $post['content']['ZL'][$key]; } } else { // 没有新增任何行 } ``` 具体的数据需要自己提取处理了。 ### 设置默认值 一般在编辑页面时会用到 ``` $list_sf = [ 44 => '广东省', 33 => '浙江省' ]; $data = [ ['SFDM' => 44, 'ZL' => 123], ['SFDM' => 44, 'ZL' => 456], ['SFDM' => 33, 'ZL' => 888], ]; // 使用ZBuilder快速创建表单 return ZBuilder::make('form') ->setPageTitle('新增') // 设置页面标题 ->addFormItems([ // 批量添加表单项 ['dataTable', 'content', '定义', '这是提示文字', [ 'SFDM' => ['type' => 'select', 'title' => '省份', 'options' => $list_sf], 'ZL' => '增量', ], $data], ]) ->fetch(); ``` 效果: ![](https://img.kancloud.cn/17/08/1708b08b00ea1fe9832139b4d88b7823_1035x338.png)