Yii 根据单选按钮选择设置下拉列表的选项
我有一个表单,其中包含一个下拉字段。下拉选项基于单选按钮选择 单选按钮Yii 根据单选按钮选择设置下拉列表的选项,yii,yii2,Yii,Yii2,我有一个表单,其中包含一个下拉字段。下拉选项基于单选按钮选择 单选按钮 <?php $list=array("1"=>"Assign to Department","2"=>"Assign to user"); echo $form->field($model, 'option')->radioList($list, [ 'template' => '{input}{label}', // put the label
<?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>
降落
<?php
echo $form->field($model, 'assignee')
->dropDownList(
$items, // Flat array ('id'=>'label')
['prompt'=>''] // options
)->label('');
?>
预期响应是根据下拉选择更改选项值。但即使单选按钮的标志值不同,并且单击时更改,该响应也不会更改
有什么想法吗?我试过一个样本,效果很好-
<?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>
PHP代码正在运行。除了在脚本中,我没有在页面的任何地方定义$items。但是我没有得到任何错误。是的,我的错误。那代码肯定会有用的。只需在页面加载时设置$items PHP变量,下拉菜单将获得初始数组。这是一个想法-您可以创建两个单独的javascript数组,并从PHP数组中为其设置值。创建一个公共javascript函数,在onclick函数中,将所选单选按钮传递给公共函数。此常用函数可以相应地将选项设置为下拉列表。@kunaldeshe谢谢kunal@库纳尔……我一定会尽力让你不要的-