我有一个问题..我有一个包含一个有很多值的下拉列表
的表格我想要当用户从下拉文本中选择特定值时,我立即显示。我知道我必须使用JavaScript,但我不知道
如何这是我的代码:
<div class="row">
<?php echo $form->labelEx($model,'type'); ?>
<?php echo $form->dropDownList($model,'type',$model->getTypeOptions()); ?>
<?php echo $form->error($model,'type'); ?>
</div>
<div class="row">
<?php echo "<b>Data</b> : <i> Use WhiteSpaces or , to enter values</i> "; ?><br/>
<?php echo $form->textArea($model, 'data', array('rows'=>10, 'cols'=>50)); ?>
<?php echo $form->error($model, 'data'); ?>
</div>
我只想在用户选择值时显示此textarea(ex:Checkboxtlist中的下拉列表)
我搜索并在
中发现$form->dropDownList($model,'type',$model->getTypeOptions());
我们可以在下拉列表内部的数组参数..但是我真的不知道在此数组中要写什么
有帮助吗?
喜欢下面:
<?php echo $form->dropDownList($model,'type',$model->getTypeOptions(),array('id'=>'myDropDown')); ?>
<?php echo $form->textArea($model, 'data', array('rows'=>10, 'cols'=>50,'id'=>'myTextArea')); ?>
现在,您需要的是创建AJAX请求。
<script>
$('#myDropDown').on('change', function() {
$.ajax({
url: "<?php echo $this->createUrl('controller/test'); ?>",
dataType: 'html',
type: 'POST',
data: {dropDownValue: $(this).val()},
success: function(data, textStatus, jqXHR) {
$('#myTextArea').val(data);
}
});
});
请注意,测试是您控制器中的一个动作。(替换为您自己的名称)。
然后,创建动作:
public function actionTest() {
if (Yii::app()->request->isAjaxRequest) {
$dropDownValue = Yii::app()->request->getPost('dropDownValue');
if ($dropDownValue === 'A VALUE YOU WANT TO COMPARE WITH') {
echo 'SOME THING YOU WANT';
}
Yii::app()->end();
}
}
要了解更多信息,我们说,如果下拉值更改,请致电AJAX请求以将下拉值发送到服务器。然后,如果我们的价值是我们想要的,我们将做点什么。最后,在成功函数中,这意味着Ajax成功返回了响应,我们使用发送给我们的服务器(test Action)更改文本方面的价值。