2014-12-20 6 views
11
내가 Yii2 드롭 다운 메뉴에서 선택한 값을 표시 할

,Yii2 드롭 다운 선택 값

$ _GET 값 :

$id = $_GET["cid"]; 

드롭 다운 코드

$form->field($model, 'userid') 
    ->dropDownList(
      [User::getUser()], 
      //[ArrayHelper::map(User::findAll(['active' => '1']), 'id', 'name')], 
      ['prompt'=>'Select a user','id'=>'user_dropdown'],  
      ['options' => 
        [       
         $id => ['selected' => true] 
        ] 
      ] 

     )->label('');   

하지만이 방법은 작동하지 않습니다!

+0

가 아라가 .. 난 그냥 PHP 태그 내부 반향을 작성하는 것을 잊지 (보기는 그대로입니다). field (....)?> –

+0

또한이 코드는 누락되었습니다. $ model-> userid = $ id; –

답변

18

시도해보십시오.

$model->userid=$id; 
$form->field($model, 'userid') 
->dropDownList(...) 
->label(''); 
+2

적어도 이유는 무엇입니까? 왜 투표를하지 않습니까? 작동하지 않습니까? –

+0

다음 코드 줄이 누락되었습니다. $ model-> userid = $ id; –

+0

도움이 되니 기쁩니다. –

0

좋습니다. ActiveForm을 사용하는 경우 모델 필드의 값이 선택된 값으로 사용됩니다. HTML 도우미로 dropDownList 함수는 다른 매개 변수 선택 doc을 허용합니다. 예 :이 기본적으로 당신에게

$form->field($model, 'userid') 
    ->dropDownList(
      [User::getUser()], 
      //[ArrayHelper::map(User::find()->where('id' => $id)->all(), 'id', 'name')], 
      ['prompt'=>'Select a user','id'=>'user_dropdown'],  
      ['options' => 
        [       
         $id => ['selected' => true] 
        ] 
      ] 

     )->label(''); 
+0

이 오류가 발생했습니다 : 객체가 아닌 객체에서 formName() 멤버 함수를 호출하십시오. –

+0

코드를 보여주십시오! – Fortran

2

, 당신은 드롭 다운리스트 옵션의 배열 키로 속성의 실제 값을 사용하여 옵션 (당신의 <option> 요소)에 영향을 정렬.

이 경우 필자는 상태 배열을 가지며 값 속성에는 상태 약어가 있습니다 (예 : value="FL").

echo $form->field($model, 'state')->dropDownList($listData, ['prompt'=>'Select...', 'options'=>[$address->state=>["Selected"=>true]]]); 

문서는 그것을 주문 : 그래서 내가 할 일은이 옵션에서 내 배열 키로 배열을 것을 사용하고, 약자를 저장하는 주소 테이블에서 내 선택 상태를 받고 있어요 :

+0

다중 선택에도 유용합니다. – Footniko

2

을 도움이되기를 바랍니다

$id = $_GET["cid"]; 
\yii\helpers\Html::dropDownList('userid', $id, [ArrayHelper::map(User::findAll(['active' => '1']), 'id', 'name'), [......]) 
2
$model->userid = $_GET['cid']; 
$form->field($model, 'userid') 
->dropDownList( 
     $items,     //Flat array('id'=>'val') 
['prompt'=>'']     //options 
)->label(''); 
0
<?php 
$selectValue = $_GET['tid'] 
echo $form->field($model, 'tag_id') 
      ->dropdownList(
       ArrayHelper::map(Tag::find()->where(['visibility'=>'1'])->orderBy('value ASC')->all(), 'tag_id', 'value'), 
       ['options' => [$selectValue => ['Selected'=>'selected']]], 
       ['prompt' => '-- Select Tag --']) 
      ->label(false); 
?> 

http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#dropDownList()-detail이 코드는 자동 선택 선택한 값이 입력으로받은 것입니다. $ selectValue는 GET 메서드에서받은 숫자 값입니다.

최종 출력 :이 코드 아래 <option value="14" selected="selected">NONE</option>

0

사용 :

$category = \backend\models\ProductCategory::find()->WHERE(['deleted'=>'N'])->all(); 

$listData = ArrayHelper::map($category,'product_category_id','category_name'); 

echo $form->field($model, 'product_category_id')->dropDownList($listData,['prompt'=>'Select']); 
0

이 내 S.O.L.I.D 접근 방식이다.

컨트롤러

$model = new User; 
$model->userid = $id; #this line does the magick. Make sure the $id has a value, so do the if else here. 
return $this->return('view', compact('model')) 

보기

$form->field($model, 'userid') 
->dropDownList(...) 
->label('');