選択した複数の値をすべて上部に表示する方法はありますか?
例えば。リストに1から10が含まれ、選択された値が4,8の場合、リストボックスには4,8,1,2,3,5,6,7,9,10のような値が必要です。
質問する
2475 次
1 に答える
1
これらは、selectのデータを一覧表示する2つの一般的な方法です。
echo CHtml::dropDownList('public', $model, array('0' => 'Private', '1' => 'Public'));
echo CHtml::activeDropDownList($model, 'developers_id', CHtml::listData(Developers::model()->findAll(), 'id', 'email') , array('prompt'=>'Select'));
1つ目は配列を使用し、ユーザーの好みに基づいて配列キーを定義、再配置できます。
次に、おそらくfindAll()呼び出しに、ユーザーが選択した値を最初に順序付けるCriteriaを導入すると、その仕事が実行されます。
アップデート
あなたは次のようなことをすることができます:
echo CHtml::listBox('listname',$selectedlist,array_intersect_key($alllist,array_flip($selectedlist))+$alllist,array('multiple' => 'multiple'));
例では:
$selectedlist=array(3,5);
$alllist=array(1=>'one',2=>'two',3=>'three',4=>'four',5=>'five');
$a=array_intersect_key($alllist,array_flip($selectedlist))+$alllist;
print_r($a);
Array ( [3] => three [5] => five [1] => one [2] => two [4] => four )
アクションのコードを参照してくださいhttp://ideone.com/6BDxQ
于 2012-10-16T13:31:37.240 に答える