我的代码就是这个
<?php echo $form->dropDownList($modelpp,'product_id',CHtml::listData(Product::model()->findAll(), 'id', 'name'),array('multiple'=>"multiple", 'size'=>"3" )); ?>
如何在选项中添加属性价格?
答案 0 :(得分:1)
我不确定是否有一个很好的内置方法来处理这个问题。一个hacky方法是在将listData的value设置为多值管道分隔值时使用匿名函数,如下所示:
<?php echo $form->dropDownList($modelpp,
'product_id',
CHtml::listData(Product::model()->findAll(),
function($model) {
return $model->id . '|' . $model->value;
},
'name'),
array('multiple'=>"multiple", 'size'=>"3" ));
?>
这将导致每个选项的值具有类似“123 | 456”的值,其中123将是id,而456将是值。在你的javascript中,你需要将其拆分为|分开ID和值。在提交给控制器时,您还需要处理拆分,并将id和值分开。
你显然可以使用不同的分隔符,甚至可以让匿名函数返回JSON,并将其用于值,这可能会导致在javascript和PHP中稍微简单的解析。