上下連携ドロップダウンボックス機能を実装するYii2メソッド

高洛峰
リリース: 2016-12-23 16:50:09
オリジナル
1342 人が閲覧しました

この記事の例では、Yii2 が上下連携ドロップダウン ボックス機能を実装する方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです。

まず、上下連動のあるドロップダウン ボックスとは何なのかを説明します

ビューに 2 つの選択がある場合、最初の選択は2番目は会社名、2番目は支店名です。複数の会社があり、各会社には複数の支店があります。現在の会社をクリックすると、支店に表示される支店が現在の会社の支店になります。

または、州を選択した後、以下の選択により現在の州の郡が表示されることを直接理解することもできます。

原則:

最初の選択をクリックした後、ajaxを実行して現在の会社のブランチを取得し、jQueryを使用してブランチの内容を変更します

2つの選択の部分的なビューコードは次のとおりです:

<?= $form->field($model, &#39;companies_company_id&#39;)->dropDownList(
  \yii\helpers\ArrayHelper::map(\backend\models\Companies::find()->all(),&#39;company_id&#39;,&#39;company_name&#39;),
  [
    &#39;prompt&#39;=>&#39;select Company&#39;,
    &#39;onchange&#39;=>&#39;
      $.post("index.php?r=branches/lists&id=&#39;.&#39;"+$(this).val(),function(data){
        $("select#departments-branches_branch_id").html(data);
      });&#39;,
  ]
) ?>
<?= $form->field($model, &#39;branches_branch_id&#39;)->dropDownList(
  \yii\helpers\ArrayHelper::map(\backend\models\Branches::find()->all(),&#39;branch_id&#39;,&#39;branch_name&#39;),
  [
    &#39;prompt&#39;=>&#39;Select Branches&#39;,
  ]
) ?>
ログイン後にコピー

listメソッドコード:

public function actionLists($id)
{
  $countBranches = Branches::find()
    ->where([&#39;companies_company_id&#39; => $id])
    ->count();
  $branches = Branches::find()
    ->where([&#39;companies_company_id&#39; => $id])
    ->all();
  if ($countBranches > 0) {
    foreach ($branches as $branche) {
      echo "<option value=&#39;" . $branche->branch_id . "&#39;>" . $branche->branch_name . "</option>";
    }
  } else {
    echo "<option>-</option>";
  }
}
ログイン後にコピー

この記事が皆様のYiiフレームワークをベースとしたPHPプログラム設計の一助になれば幸いです。

Yii2 がどのようにアップダウンリンケージドロップダウンボックス機能を実装するかに関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート