2013-01-16 102 views
0

嗨,大家好我有一個應用程序需要總結產品的價值,我有一個在表單中的多選擇下拉列表,但問題是我需要在選項中添加屬性價格才能總和用javascript選擇的值。DropDownList加載選項屬性

我的代碼是這樣的

<?php echo $form->dropDownList($modelpp,'product_id',CHtml::listData(Product::model()->findAll(), 'id', 'name'),array('multiple'=>"multiple", 'size'=>"3")); ?> 

我怎樣才能在選項中添加屬性,價格是多少?

+0

因此,您想基於用戶在同一頁面上選擇的內容向下拉列表添加選項嗎?如果是這樣,那麼你將需要使用javascipt。 – Pitchinnate

回答

1

我不確定有一個好的內置方式來處理這個問題。一個哈克方法將是的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中輕鬆解析。