我有一个名为description
的动态加载下拉列表,我希望当我在该下拉列表中选择一个值时,我的echo $form->field($model, 'type_id')->dropDownList(ArrayHelper::map($types,'id','name'),['prompt'=>'Selecione a Área',
'onchange' => '???']);
<?= $form->field($model, 'description')->textarea(['rows' => 8]) ?>
textarea字段会更新一个值。
形式
public function actionScript($id)
{
$types = Type::find()
->where(['id' => $id])
->One();
return $type->script;
}
此值将通过查询动态获取:
控制器
textarea
也就是说,在script
字段中,我想在id
dropdonw中向选定的type_id
显示相应的TABLE `mod_helpdesk_type` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`priority` int(1) NOT NULL DEFAULT '0',
`script` text NOT NULL,
`active` int(11) NOT NULL,
PRIMARY KEY (`id`)
);
列。
输入表格
{{1}}
答案 0 :(得分:2)
它会帮助你
echo $form->field($model, 'type_id')->dropDownList(ArrayHelper::map($types,'id','name'),['prompt'=>'Selecione a Área',
['class' => 'your_class', 'id' => 'your_id']
'onchange' => '???']);
<?= $form->field($model, 'description')->textarea(['rows' => 8,'id'=>'textArea']) ?>
$('#your_id').change(function(){
$('#textArea').val('testing');
})
答案 1 :(得分:0)
喜欢那个?
$('#<?php echo Html::getInputId($model, 'type_id'); ?>').change(function () {
var val = $(this).val();
$.ajax({
url: '<?php echo Url::to('script'); ?>',
type: 'get',
data: {id: val},
success: function (data) {
$('#<?php echo Html::getInputId($model, 'description'); ?>').val(data);
}
});
});
答案 2 :(得分:0)
尝试onchange ajax事件
echo $form->field($model, 'type_id')->dropDownList(ArrayHelper::map($types,'id','name'),[
'prompt'=>'Selecione a Área',
'onchange' => '
$.get( "yourControllerName/script&id="+$(this).val(), function( data ) {
$( "#yourTextAreaIdElement" ).val( data );
});
'
]);
并且更好地防止请求将id传递到actionScript
public function actionScript($id)
{
$script = '';
if(!empty($id)) {
$types = Type::find()
->where(['id' => $id])
->one();
if(!empty($types)) {
$script = $types->script;
}
}
return $script;
}