この記事の例では、Yii2 が上下連携ドロップダウン ボックス機能を実装する方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです。
まず、上下連動のあるドロップダウン ボックスとは何なのかを説明します
ビューに 2 つの選択がある場合、最初の選択は2番目は会社名、2番目は支店名です。複数の会社があり、各会社には複数の支店があります。現在の会社をクリックすると、支店に表示される支店が現在の会社の支店になります。
または、州を選択した後、以下の選択により現在の州の郡が表示されることを直接理解することもできます。
原則:
最初の選択をクリックした後、ajaxを実行して現在の会社のブランチを取得し、jQueryを使用してブランチの内容を変更します
2つの選択の部分的なビューコードは次のとおりです:
<?= $form->field($model, 'companies_company_id')->dropDownList( \yii\helpers\ArrayHelper::map(\backend\models\Companies::find()->all(),'company_id','company_name'), [ 'prompt'=>'select Company', 'onchange'=>' $.post("index.php?r=branches/lists&id='.'"+$(this).val(),function(data){ $("select#departments-branches_branch_id").html(data); });', ] ) ?> <?= $form->field($model, 'branches_branch_id')->dropDownList( \yii\helpers\ArrayHelper::map(\backend\models\Branches::find()->all(),'branch_id','branch_name'), [ 'prompt'=>'Select Branches', ] ) ?>
listメソッドコード:
public function actionLists($id) { $countBranches = Branches::find() ->where(['companies_company_id' => $id]) ->count(); $branches = Branches::find() ->where(['companies_company_id' => $id]) ->all(); if ($countBranches > 0) { foreach ($branches as $branche) { echo "<option value='" . $branche->branch_id . "'>" . $branche->branch_name . "</option>"; } } else { echo "<option>-</option>"; } }
この記事が皆様のYiiフレームワークをベースとしたPHPプログラム設計の一助になれば幸いです。
Yii2 がどのようにアップダウンリンケージドロップダウンボックス機能を実装するかに関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。