Javascript 如果使用Select2 YII2选择第一个字段,则自动填充下面的字段

Javascript 如果使用Select2 YII2选择第一个字段,则自动填充下面的字段,javascript,php,mysql,json,yii2,Javascript,Php,Mysql,Json,Yii2,我正在Yii2上开发人力资源管理系统 我有一个替换员工表单,3个字段使用3个表,这是 替换、员工和部门 我正在员工字段上使用Kartik/Select2小部件, 我开发的数据库更像这样 如果我想这样输出 我该怎么办? 我尝试了一些类似这样的代码 <?= $form->field($model, 'EmployeeId')->widget(Select2::classname(), [ 'data'=>$listData, 'options' => ['id'

我正在Yii2上开发人力资源管理系统 我有一个替换员工表单,3个字段使用3个表,这是 替换、员工和部门 我正在员工字段上使用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']) ?>
请检查此链接:
.
您可以使用“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事件并使用回调函数填充另一个字段。 如果您需要进一步帮助,请告诉我。

请查看此链接: . 您可以使用“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事件并使用回调函数填充另一个字段。
如果您需要进一步的帮助,请告诉我。

将id=>currentDept放在下拉列表中,就像这样,我得到一个意外的双箭头,我会再试一次,我认为最好使用depdrop小部件。依赖下拉列表karik widget我已经做了,但它仍然显示currentDept上的其他数据,并且我将其设置为只读,它仍然可以修改,可单击。我正在尝试通过修改操作ID来获取currentDept值,如displaced/view?ID=1,我从ID=1put ID=>currentDept下拉列表中获取值,如下图所示,我得到一个意外的双箭头,我会再试一次,我认为最好使用depdrop小部件。依赖下拉列表karik widget我已经做了,但它仍然显示currentDept上的其他数据,并且我将其设置为只读,它仍然可以修改,可单击。我正在尝试通过修改操作ID获取currentDept值,如displaced/view?ID=1,我从ID=1获取值我不了解json,但我仍在研究pluginEventDid你昨天试过了吗?但还没有,我从你提供的链接中研究了json。有趣的是,我还不了解json,但我仍在研究pluginEventDid你昨天试过了吗?但还没有,我从你提供的链接中研究了json。很有趣