Dropdownlist merupakan atribut dari ActiveForm yang sering digunakan pada Yii2. Terdapat berbagai cara untuk menampilkan data dengan dropDownList.
DropDownList Biasa Tanpa Menggunakan Model
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php use yii\helpers\Url; use yii\bootstrap\ActiveForm; use yii\helpers\Html; $model = new \common\models\CompaniesModel(); ?> <?php $form = ActiveForm::begin(['id' => 'form-yii2tips']); ?> <?= $form->field($model, 'company_name')->dropDownList(['1'=>'Company 1','2'=>'Company 2','3'=>'Company 3']); ?> <div class="form-group"> <?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> </div> <?php ActiveForm::end(); ?> |
akan menghasilkan
DropDownList dengan Menggunakan Prompt Text
Kita bisa menambahkan teks utama di dalam dropdown list, dalam kasus ini misalnya ‘Select Company’ :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php use yii\helpers\Url; use yii\bootstrap\ActiveForm; use yii\helpers\Html; $model = new \common\models\CompaniesModel(); ?> <?php $form = ActiveForm::begin(['id' => 'form-yii2tips']); ?> <?= $form->field($model, 'company_name')->dropDownList(['1'=>'Company 1','2'=>'Company 2','3'=>'Company 3'],['prompt'=>'Select Company']); ?> <div class="form-group"> <?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> </div> <?php ActiveForm::end(); ?> |
DropDownList dengan Sumber Data Model dari Database
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php use yii\helpers\Url; use yii\bootstrap\ActiveForm; use yii\helpers\Html; use yii\helpers\ArrayHelper; $model = new \common\models\CompaniesModel(); $list = \common\models\CompaniesModel::find()->all(); $listData = ArrayHelper::map($list,'company_id','company_name'); ?> <?php $form = ActiveForm::begin(['id' => 'form-yii2tips']); ?> <?= $form->field($model, 'company_name')->dropDownList($listData,['prompt'=>'Select Company']); ?> <div class="form-group"> <?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> </div> <?php ActiveForm::end(); ?> |
Akan menampilkan data pada dropdownlist dengan data-data yang berada di dalam database.
Pemilihan Default Yii2 Dropdown ketika Create dan Update
Di kode dari bsourcecode ini kita akan otomatis mendapatkan nilai default yang akan ditampilkan pada DropDownList :
Pada Controller :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<??php ................... public function actionCreate() { $model = new Population(); // Default Selection for country code $model->country='IN'; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->code]); } else { return $this->render('create', [ 'model' => $model, ]); } } public function actionUpdate($id) { $model = $this->findModel($id); return $this->render('update', [ 'model' => $model, ]); } ................... ?> |
Pada View :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php ................... public function actionCreate() { $model = new Population(); // Default Selection for country code $model->country='IN'; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->code]); } else { return $this->render('create', [ 'model' => $model, ]); } } public function actionUpdate($id) { $model = $this->findModel($id); return $this->render('update', [ 'model' => $model, ]); } ................... ?> |