我正在Yii2上开发人力资源管理系统我有这个替换员工表单,3个字段使用3个表,它是调动、员工和部门我在Employee字段中使用Kartik/Select2小部件,我开发的数据库更像这样
数据库
如果我想做出这样的输出
输出
我该怎么办?我试过这样的代码
<?= $form->field($model, 'EmployeeId')->widget(Select2::classname(),
[
'data'=>$listData,
'options' => ['id' => 'EmployeeId'],
'pluginOptions' => [
'placeholder' => 'Employee Name',
'changeOnReset'=>'$.post
("index.php?r=project/lists&id='.'"+$(this).val(),function(data)
{ $("select#currentDept").html(data);
}
);'
],
])?>
<?= $form->field($model, 'currentDept')->dropDownList($dataList,['prompt'=>'Choose Department','readonly' => !$model->isNewRecord]) ?>
<?= $form->field($model, 'DeptID')->dropDownList($dataList,['prompt'=>'Choose Department']) ?>
它起作用了,但CurrentDept字段没有生成
请检查此链接:http://demos.krajee.com/widget-details/select2.您可以使用"pluginEvents"进行相同的操作。
pluginEvents = [
"change" => "function() { log('change'); }",
"select2:opening" => "function() { log('select2:opening'); }",
"select2:open" => "function() { log('open'); }",
"select2:closing" => "function() { log('close'); }",
"select2:close" => "function() { log('close'); }",
"select2:selecting" => "function() { log('selecting'); }",
"select2:select" => "function() { log('select'); }",
"select2:unselecting" => "function() { log('unselecting'); }",
"select2:unselect" => "function() { log('unselect'); }"
];
您可以使用select事件,并使用回调函数填充其他字段。如果你需要进一步的帮助,请告诉我。