2012-10-16 2 views
1

상단에 여러 개의 선택된 값을 모두 표시 할 수있는 방법이 있습니까?
예 : 목록에 1 ~ 10이 포함되고 선택한 값이 4,8이면 목록 상자의 값은 4,8,1,2,3,5,6,7,9,10과 같은 값이어야합니다.yii multiple listBox 상단에 선택된 값

+1

의 코드를 참조 위에? 그렇다면 JS를 사용하거나 저장된 값을 표시해야합니다. 전시 전에 정렬하면 – FabioCosta

+1

선택 항목을 채우는 방식을 제공해야합니다. – Pentium10

+0

echo $ form-> labelEx ($ model, 'Stores'); echo CHtml :: listBox ('listname', $ selectedlist, $ alllist, array ('multiple'=> 'multiple'))); – ASD

답변

1

다음은 두 가지 일반적인 방법입니다. 선택 항목에 대한 데이터를 나열합니다.

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')); 

첫 번째 배열은 사용자 환경 설정에 따라 배열 키를 정의하고 재배치 할 수 있습니다.

두 번째로, 아마도 사용자가 선택한 값을 순서대로 지정하는 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

+0

잘 작동합니다. 당신의 도움을 주셔서 감사합니다. – ASD