效果
实现代码
$list_sf = [
44 => '广东省',
33 => '浙江省'
];
// 使用ZBuilder快速创建表单
return ZBuilder::make('form')
->setPageTitle('新增') // 设置页面标题
->addFormItems([ // 批量添加表单项
['dataTable', 'content', '定义', [
'SFDM' => ['type' => 'select', 'title' => '省份', 'options' => $list_sf],
'ZL' => '增量',
]],
])
->fetch();
目前仅支持“下拉菜单”和“单行文本”。
提交后,服务器接受的数据格式为:
~~~
["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();
效果: