2014-01-18 19 views
1

選擇我有一個問題,一個特定的值後,以顯示textarea的..我有包含一個下拉列表中有很多值我想從DropDownList中

我想,當用戶選擇從特定值的形式下拉我立即顯示一個文本..我知道我將不得不使用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的只有所示,當用戶選擇的值(例如:下拉菜單中的checkboxtlist)

我搜索,發現

$form->dropDownList($model,'type',$model->getTypeOptions()); 

我們可以,但數組參數內DROPDOWNLIST ..但我真的不知道什麼excatly這個陣列

任何幫助寫?

回答

2

做象下面這樣:

<?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成功返回響應的成功函數中,我們使用發送給我們的服務器(測試操作)來更改textArea的值。