2015-06-28 20 views
7

Tôi trả về giá trị cat_id bằng GET trong url để nói rằng danh sách thả xuống của tôi, Mục nào phải được chọn. Nhưng nó không hoạt động.Yii2 dropdownList chọn tùy chọn mặc định

<?= $form->field($model, 'cat_id')->dropDownList(
ArrayHelper::map(DeviceCats::find() 
->where(['is_deleted' => 'no'])->all(),'id','title') 
,['options' => [$_GET['cat_id'] => ['selected'=>true]] 
, 'prompt' => ' -- Select Category --']) ?> 
+0

Tham khảo http://www.saidur-rahman.com/default-selected- value-in-a-dropdownlist-in-yii/ –

Trả lời

11

Cuối cùng được giải quyết với thay đổi không thể tin được. Chỉ cần thay đổi chữ cái đầu tiên được chọn thành vốn ('được chọn' phải là 'Đã chọn'). Đây là mã:

<?= $form->field($model, 'cat_id')->dropDownList(
ArrayHelper::map(DeviceCats::find() 
->where(['is_deleted' => 'no'])->all(),'id','title') 
,['options' => [$_GET['cat_id'] => ['Selected'=>'selected']] 
, 'prompt' => ' -- Select Category --']) ?> 
0

Chỉ cần đảm bảo rằng mô hình của bạn có thuộc tính cat_id được đặt. Một nơi nào đó trong điều khiển của bạn chỉ cần làm một

$model->cat_id = filter_input_array(INPUT_GET, 'cat_id'); 

hoặc

$modelArray = filter_input_array(INPUT_GET, 'nameofmodel'); 
    $model->cat_id = $modelArray['cat_id']; 

Nếu bạn thực sự muốn làm điều đó như bạn đã làm, có lẽ bạn phải sử dụng tên của mô hình quá trong đó.

<?= $form->field($model, 'cat_id')->dropDownList(ArrayHelper::map(DeviceCats::find()->where(['is_deleted' => 'no'])->all(),'id','title'),['options' => [$_GET['SOMETHIGNHERE']['cat_id'] => ['selected'=>true]], 'prompt' => ' -- Select Category --']) ?> 
+0

Cảm ơn bạn Mihai. Thực ra, tôi chắc chắn về giá trị hiện tại trong mảng. Ngoài ra, tôi đã sử dụng var_dump ($ _ GET) và nó ở cấp 1. – Mojtaba

+0

đó là quan điểm của tôi ... không nên. Bạn đang nhảy qua hoops để có được rằng làm việc và làm điều đó sai quá. Thay vào đó bạn nên di chuyển mã trong bộ điều khiển. Bên cạnh đó bạn đang sử dụng các hình ảnh toàn cầu PHP trực tiếp và đó là một số không. –

10

'chọn' phải được viết bằng một chữ cái viết hoa 'S':

'options'=>['72'=>['Selected'=>true]] 
+1

Tại sao địa ngục được chọn phải được viết bằng vốn S? Đây phải là một lỗi hoặc một cái gì đó. Dù sao cũng cảm ơn! –

Các vấn đề liên quan