首頁 >後端開發 >php教程 >Yii2實作上下聯動下拉框功能的方法_php實例

Yii2實作上下聯動下拉框功能的方法_php實例

WBOY
WBOY原創
2016-08-17 13:02:321111瀏覽

本文實例講述了Yii2實作上下連動下拉框功能的方法。分享給大家參考,具體如下:

首先我先解釋下什麼是上下連動的下拉框

假如一個view裡面有兩個select,第一個是公司名,第二個是分公司名。公司有多個,每個公司又有多個分公司,我們實現的就是點擊當前公司後,分公司裡面顯示的事當前公司的分公司。

或你直接理解成選擇所屬省份後,下面的select顯示的是目前省份的縣。

原理:

點選第一個select後,執行ajax取得目前公司的分公司,並使用jQuery修改分公司內容

兩個select的部分視圖程式碼如下:

<&#63;= $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&#63;r=branches/lists&id='.'"+$(this).val(),function(data){
        $("select#departments-branches_branch_id").html(data);
      });',
  ]
) &#63;>
<&#63;= $form->field($model, 'branches_branch_id')->dropDownList(
  \yii\helpers\ArrayHelper::map(\backend\models\Branches::find()->all(),'branch_id','branch_name'),
  [
    'prompt'=>'Select Branches',
  ]
) &#63;>

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相關內容有興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php物件導向程式設計入門教程》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教學》及《php常見資料庫操作技巧總表》

希望本文所述對大家以Yii架構為基礎的PHP程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn