Yii2 二級聯動 DropDownList

2021-08-06 06:12:49 字數 3358 閱讀 1301

先隨手建庫 city 和province

| province | create

table

`province` (

`id`

int(11) not

null auto_increment,

`province`

varchar(255) not

null,

`provinceid`

int(10) unsigned not

null comment '省份id,外聯市區id',

primary

key (`id`),

key`provinceid` (`provinceid`)

) engine=innodb auto_increment=35

default charset=utf8 |

| city | create

table

`city` (

`id`

int(11) not

null auto_increment,

`cityid`

int(10) unsigned not

null,

`city`

varchar(50) not

null,

`provinceid`

int(10) unsigned not

null,

primary

key (`id`),

key`provinceid` (`provinceid`),

key`cityid` (`cityid`),

constraint

`city_ibfk_1`

foreign

key (`provinceid`) references

`province` (`provinceid`)

) engine=innodb auto_increment=346

default charset=utf8 comment='行政區域地州市資訊表' |

然後隨手再點個users的庫

| users | create

table

`users` (

`uid` bigint(20) unsigned not

null auto_increment,

`user`

int(11) not

null,

`name`

varchar(200) not

null

default

'', `desc` text not

null,

`cityid`

int(10) unsigned not

null,

`provinceid`

int(10) unsigned not

null,

primary

key (`uid`),

key`city_id` (`cityid`),

key`provinceid` (`provinceid`),

constraint

`users_ibfk_2`

foreign

key (`cityid`) references

`city` (`cityid`),

constraint

`users_ibfk_1`

foreign

key (`provinceid`) references

`province` (`provinceid`)

) engine=innodb default charset=utf8 |

好了,後面喜歡的話就新增點資料, 接下來開始寫**.

只要需要2步 view.php中**如下

<?php

use yii\helpers\html;

use yii\widgets\activeform;

?>

<?php $form = activeform::begin(); ?>

<?=

$form

->field($model, 'user')->textinput() ?>

<?=

$form

->field($model, 'name')->textinput([

'maxlength'

=>

true

]) ?>

<?=

$form

->field($model, 'provinceid')->label('province')->dropdownlist(

province::find()

->

select([

'province','provinceid'])

->indexby('provinceid')

->column(),

['prompt'

=>

'請選擇省份',

'onchange'

=>

' $.post("index.php?r=users/list&id='

.'"+$(this).val(),function(data));',

]) ?>

<?= $form->field($model, 'cityid')->dropdownlist(

city::find()->select(['city','cityid'])->indexby('cityid')->column(),

['prompt'=>'選擇市區',

]) ?>

<?= $form->field($model, 'desc')->textarea(['

rows

' => 10]) ?>

<?= html::submitbutton($model->isnewrecord ? 'create' : 'update', ['class' => $model->isnewrecord ? 'btn btn-success

' : 'btn btn-primary

']) ?>

<?php activeform::end(); ?>

上面問題最關鍵的就是onchange方法. 是用ajax調取controller來影響下面的欄

controller中**如下

public static function actionlist($id=230000)  //這個$id除錯用,可以直**到除錯資料又沒問題

} else

}

二級聯動,多級聯動

首先,二級聯動,還是多級聯動小夥伴們不要怕,其實很簡單。首先,理清思路 首先第乙個頁面,肯定是進來就需要載入的 然後通過觸發第乙個事件,一般都是select寫 聯動,然後通過事件方法將引數 二級需要的條件 傳送給下乙個 需要用的地方 需要展示的地方 上 注意 function 這個方法裡是頁面在載入...

二級聯動 js

在html部分只寫兩個select標籤 option標籤將用js的方法寫入 onchange 內容發生改變事件 用於select下拉列表中後的內容發生改變時候的觸發 核心部分就是js裡面的內容 建立乙個物件data來儲存資料 data 首先通過for迴圈來新增第一級裡面的內容 province va...

Ajax 二級聯動

準備工作匯入vue jquery的js包 導包部分省略不寫 接下來應該先寫html頁面的 姓名 級部 請選擇級部 班級 請選擇班級 性別 男 請選擇省 省請選擇市 市愛好 籃球 足球 排球 簡介 接下來是jquery的例項 控制器 例項部分 查詢年級的表 return 年級表查詢的結果集 respo...