我有一個表單,其中包含一個下拉字段。下拉選項基於單選按鈕選擇。基於單選按鈕選擇設置下拉選項
單選按鈕
<?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它甚至沒有改變選項值的變化儘管單選按鈕的標誌值不同,點擊發生變化。
任何想法?
這PHP代碼working.I hav'nt定義的$項目的任何地方在我的頁面以外的script.Still我不」沒有任何錯誤。 –
是的,我的不好。該代碼肯定會起作用。只有'$ items' PHP變量將在頁面加載時設置,下拉列表將獲得初始數組。 –
只是一個想法 - 你可以創建2個獨立的javascript數組,並從PHP數組中爲它們設置值。在onclick函數中創建一個通用的javascript函數,將選定的單選按鈕傳遞給通用函數。這個通用功能可以將選項設置爲相應的下拉菜單。 –