Php 有没有办法将下拉字段选项绑定到yii2中的特定输入类型
我有一个由媒体类型下拉列表组成的表单Php 有没有办法将下拉字段选项绑定到yii2中的特定输入类型,php,yii2,Php,Yii2,我有一个由媒体类型下拉列表组成的表单 <?= $form->field($model, 'media_type')->dropDownList( [ 'text' => 'Text', 'image' => 'Image', 'url' => 'Url', 'audio' => 'Audio', 'video' => 'Video', ], [
<?= $form->field($model, 'media_type')->dropDownList(
[
'text' => 'Text',
'image' => 'Image',
'url' => 'Url',
'audio' => 'Audio',
'video' => 'Video',
],
[
'options' => ['prompt' => 'Select Media Type']
]
) ?>
我想在更改yii2表单中的媒体类型时更改值字段。例如,如果选择文本选项,则需要显示tinymce编辑器。或者,如果我们选择图像,那么我们需要显示文件输入字段
文件输入字段
<?php
echo $form->field ( $model, 'value' )->fileInput ();
if ($model->value != ""){
echo Html::a('Click here to view image', $model->value, ['target' => '_blank']);
}
?>
微型mce编辑器
<?= $form->field($model, 'value')->textarea(['rows' => 6])->widget(letyii\tinymce\Tinymce::className(), [
'options' => [
'class' => '',
],
'configs' => [
'plugins' => 'advlist autolink link lists charmap preview code colorpicker',
'height' => 300,
'selector' => 'textarea',
'forced_root_block' => '',
],
]);
?>
不管怎样,实现这一目标将非常有帮助
谢谢添加一些JavaScript来监听下拉列表的更改,并根据所选值显示/隐藏元素 我写了一个小例子。您必须更改ID以匹配您的元素,还可能进行一些其他小更改,但类似的更改应该可以工作
<?php
$this->registerJs("
$(function() {
$('#your-form-media-type-id').on('change', function() {
var value = this.value
switch (value) {
case 'text':
$('#your-mce-div').show();
$('#your-image-input-div').hide();
break;
case 'image':
$('#your-image-input-div').show();
$('#your-mce-div').hide();
break;
}
});
});
");
谢谢你的回答。我用你们的答案设法解决了这个问题。我使用外部div id来显示和隐藏元素。