2014-06-16 156 views
0

我有一個表單,其中包含一個下拉字段。下拉選項基於單選按鈕選擇。基於單選按鈕選擇設置下拉選項

單選按鈕

<?php 
    $list=array("1"=>"Assign to Department","2"=>"Assign to user"); 
    echo $form->field($model, 'option')->radioList($list, 
    [ 
     'template' => '{input}{label}', // put the label behind 
    ]); 
?> 

腳本

<script> 
    $('input[type=radio]').click(function(){ 

     var Flag=this.value; 
     if(Flag=='1') { 
      '<?php $items= ArrayHelper::map($company->Users, 'id', 'fullname');?>'; 
     } else if(Flag=='2') { 
      '<?php $items= ArrayHelper::map(Department::find()->all(), 'dep_id', 'name'); ?>'; 
     } 
     alert(Flag); 
    }); 
</script> 

Drodown

<?php 
    echo $form->field($model, 'assignee') 
     ->dropDownList(
      $items,   // Flat array ('id'=>'label') 
      ['prompt'=>''] // options 
     )->label(''); 
?> 

期望的迴應是根據下拉selection.But它甚至沒有改變選項值的變化儘管單選按鈕的標誌值不同,點擊發生變化。

任何想法?

+0

這PHP代碼working.I hav'nt定義的$項目的任何地方在我的頁面以外的script.Still我不」沒有任何錯誤。 –

+0

是的,我的不好。該代碼肯定會起作用。只有'$ items' PHP變量將在頁面加載時設置,下拉列表將獲得初始數組。 –

+1

只是一個想法 - 你可以創建2個獨立的javascript數組,並從PHP數組中爲它們設置值。在onclick函數中創建一個通用的javascript函數,將選定的單選按鈕傳遞給通用函數。這個通用功能可以將選項設置爲相應的下拉菜單。 –

回答

2

我已經試過這一個樣本,它的工作原理 -

<?php 
    $items1 = range(0, 5); //PHP Array 1 
    $items2 = range(5, 10); //PHP Array 2 
?> 

<script> 
    var arr1 = <?php echo json_encode($items1); ?>; //Javascript Array 1 
    var arr2 = <?php echo json_encode($items2); ?>; //Javascript Array 2 

    $(document).ready(function() { 
     $('input[type=radio]').click(function(){ 
      var Flag = this.value; 
      setDropdown(Flag); 
     }); 
    }); 

    function setDropdown(Flag) { 
     var elem = $('#Skill_order_no'); //Your dropdown element name. 
     if(Flag == '1') { 
      elem.empty(); 
      $.each(arr1, function(index, value) { 
       elem.append($('<option>').text(value).attr('value', value)); 
      }); 
     } else if(Flag == '2') { 
      elem.empty(); 
      $.each(arr2, function(index, value) { 
       elem.append($('<option>').text(value).attr('value', value)); 
      }); 
     } 
    } 
</script> 
+0

@ kunal ..我會明確嘗試讓你放棄。 :-) –

+0

@ kunal..thanks..its working! –

相關問題