亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

Yii2使用dropdownlist實現地區三級聯動功能的方法

2024-05-04 23:48:21
字體:
來源:轉載
供稿:網友

本文實例講述了Yii2使用dropdownlist實現地區三級聯動功能的方法。分享給大家供大家參考,具體如下:

視圖部分:

<?phpuse yii/helpers/Url;use yii/widgets/ActiveForm;use yii/helpers/ArrayHelper;use yii/helpers/Html;/* @var $this yii/web/View *//* @var $model common/search/service/ItemSearch *//* @var $form yii/widgets/ActiveForm */?><div class="row">  <div class="item-search">    <?php $form = ActiveForm::begin([      'action' => ['index'],      'method' => 'get',      'options' => ['class' => 'form-inline']    ]); ?>    <?= $form->field($model, 'cityName', ['options' => ['class' => 'form-group col-lg-2']])->dropDownList(ArrayHelper::map($cities, 'id', 'name'), ['prompt' => '請選擇城市'])->label('請選擇城市', ['class' => 'sr-only']) ?>    <?= $form->field($model, 'areaName', ['options' => ['class' => 'form-group col-lg-2']])->dropDownList(ArrayHelper::map($areas, 'id', 'name'), ['prompt' => '請選擇區縣'])->label('請選擇區縣', ['class' => 'sr-only']) ?>    <?= $form->field($model, 'communityName', ['options' => ['class' => 'form-group col-lg-2']])->dropDownList(ArrayHelper::map($communities, 'id', 'name'), ['prompt' => '請選擇小區'])->label('請選擇小區', ['class' => 'sr-only']) ?>    <div class="col-lg-2 col-lg-offset-1">      <input class="form-control" id="keyword" placeholder="請輸入小區名" value="" />    </div>    <div class="col-lg-1">      <button type="button" id="search-community" class="btn btn-info">搜索</button>    </div>    <p></p>    <div class="form-group col-lg-1 pull-right">      <?= Html::submitButton('搜索', ['class' => 'btn btn-primary']) ?>    </div>    <?php ActiveForm::end(); ?>  </div></div><p> </p><?php$this->registerJs('  //市地址改變  $("#itemsearch-cityname").change(function() {    //市id值    var cityid = $(this).val();    $("#itemsearch-areaname").html("<option value=/"0/">請選擇區縣</option>");    $("#itemsearch-communityname").html("<option value=/"0/">請選擇小區</option>");    if (cityid > 0) {      getArea(cityid);    }  });  //區地址改變  $("#itemsearch-areaname").change(function() {    //區id值    var areaid = $(this).val();    $("#itemsearch-communityname").html("<option value=/"0/">請選擇小區</option>");    if (areaid > 0) {      getCommunity(areaid);    }  });  //獲取市下面的區列表  function getArea(id)  {    var href = "' . Url::to(['/service/base/get-area-list'], true). '";    $.ajax({      "type" : "GET",      "url"  : href,      "data" : {id : id},      success : function(d) {        $("#itemsearch-areaname").append(d);      }    });  }  //獲取區下面的小區列表  function getCommunity(id)  {    var href = "' . Url::to(['/service/base/get-community-list'], true) . '";    $.ajax({      "type" : "GET",      "url"  : href,      "data" : {id : id},      success : function(d) {        $("#itemsearch-communityname").append(d);      }    });  }  //搜索小區  $("#search-community").click(function() {    var word  = $("#keyword").val();    var areaid = $("#itemsearch-areaname option:selected").val();    var href  = "' . Url::to(['/service/base/search-community'], true) . '";    if (areaid > 0) {      $.ajax({        "type" : "GET",        "url"  : href,        "data" : {id : areaid, word : word},        success : function(d) {          $("#itemsearch-communityname").html(d);        }      });    }  });');?>

模型部分:

就是我們常用的ajax請求,當然php中需要直接組合成<option value=""></option>這樣的結構直接用,$form->field($model, $var)中的變量數據表中不一定有,得在模型中自己定義,并設置安全字段,而且搜索模型也可能需要修改成自己需要的樣子,模型可能要這樣:

class HuangYeError extends /yii/db/ActiveRecord{  public $cityName;  public $areaName;  public $communityName;  public $group;  public $cate;  /**   * @inheritdoc   */  public static function tableName()  {    return 'll_hy_huangye_error';  }  public static function getDb()  {    return Yii::$app->get('dbnhuangye');  }}

之前是多表,需要使用jjoinWith()連表,后來被我全部轉化為單表了,多表實在是慢,能轉化成單表就用單表吧:

class HuangYeErrorSearch extends HuangYeError{  const PAGE_SIZE = 20;  public $communityName;  public $startTime;  public $endTime;  /**   * @inheritdoc   */  public function rules()  {    return [      [['id', 'serviceid', 'userid', 'categoryid', 'communityid', 'sortorder', 'ctime', 'utime', 'status'], 'integer'],      [['username', 'name', 'logo', 'phone', 'address', 'content', 'error', 'communityName', 'startTime', 'endTime'], 'safe'],    ];  }  /**   * @inheritdoc   */  public function scenarios()  {    // bypass scenarios() implementation in the parent class    return Model::scenarios();  }  /**   * Creates data provider instance with search query applied   *   * @param array $params   *   * @return ActiveDataProvider   */  public function search($params)  {    $query = HuangYeError::find();    //status == 9 刪除狀態    $condition = ' `status` != :status';    $p[':status'] = 9;    $query->where($condition, $p);    $dataProvider = new ActiveDataProvider([      'query' => $query,      'pagination' => [        'pageSize' => self::PAGE_SIZE,      ],    ]);    $this->load($params);    if (!$this->validate()) {      // uncomment the following line if you do not want to any records when validation fails      // $query->where('0=1');      return $dataProvider;    }    $query->andFilterWhere([      'userid' => $this->userid    ]);    $query->andFilterWhere(['like', 'username', $this->username])      ->andFilterWhere(['like', 'name', $this->name])      ->andFilterWhere(['like', 'phone', $this->phone])      ->andFilterWhere(['like', 'address', $this->address])      ->andFilterWhere(['like', 'content', $this->content])      ->andFilterWhere(['ll_hy_huangye_error.status' => $this->status])      ->andFilterWhere(['ll_hy_huangye_error.categoryid' => $this->categoryid])      ->andFilterWhere(['between', 'ctime', strtotime($this->startTime . '0:0:0'), strtotime($this->endTime . '23:59:59')])      ->andFilterWhere(['like', 'error', $this->error]);    if (intval($this->communityName)) {      $query->andFilterWhere(['ll_hy_huangye_error.communityid' => intval($this->communityName)]);    }    $order = ' `ctime` DESC';    $query->orderBy($order);    return $dataProvider;  }}

控制器中寫比較簡單一點,直接調用就行了:

/*** ajax請求小區** @param $id* @return string*/public function actionGetCommunityList($id){    $option = '';    $result = self::getCommunity($id);    if ($result) {      foreach ($result as $value) {        $option .= '<option value="' . $value['id'] . '">' . $value['name'] . '</option>';      }    } else {      $option .= '<option value="0">暫未開通可選擇的小區</option>';    }    echo $option;}

希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久福利| 91久久久久久国产精品| 国产精品日日摸夜夜添夜夜av| 亚洲激情第一页| 欧美性猛交xxxx免费看久久久| 国产999精品| 国产99视频精品免视看7| 在线观看国产精品91| 国产亚洲精品久久久久久777| 狠狠躁夜夜躁人人爽超碰91| 国产精品高潮呻吟久久av野狼| 色一区av在线| 91av网站在线播放| 91天堂在线视频| 国产视频自拍一区| 欧美怡红院视频一区二区三区| 亚洲国产精品va| 国产第一区电影| 亚洲女人天堂视频| 97视频免费在线观看| 亚洲精品国产拍免费91在线| 51ⅴ精品国产91久久久久久| 亚洲性夜色噜噜噜7777| 麻豆乱码国产一区二区三区| 国产精品免费看久久久香蕉| 国产精品视频一| 久久久久免费视频| 久久久久久尹人网香蕉| 国产精品久久久久久久电影| 精品一区二区三区电影| 精品视频—区二区三区免费| 欧美综合激情网| 亚洲成av人片在线观看香蕉| 最近2019中文免费高清视频观看www99| 97成人在线视频| 久久人人爽人人爽人人片av高清| 精品日韩视频在线观看| 久久福利视频导航| 欧美乱妇40p| 国产狼人综合免费视频| 久久高清视频免费| 亚洲网站视频福利| 久久成人精品视频| 91啪国产在线| 97免费中文视频在线观看| 97在线免费视频| 亚洲码在线观看| 欧美xxxx18国产| 欧美激情精品久久久久久久变态| 成人av色在线观看| 日韩欧美国产黄色| 日韩一区二区av| 亚洲片在线资源| 欧美超级免费视 在线| 亚洲aa中文字幕| 精品国产乱码久久久久久婷婷| 亚洲毛茸茸少妇高潮呻吟| 日韩亚洲综合在线| 国产成人免费91av在线| 日韩av在线一区二区| 国产一区二区三区在线看| 亚洲精品动漫久久久久| 国产精品久久激情| 国产精品偷伦视频免费观看国产| 亚洲精品乱码久久久久久金桔影视| 成人有码视频在线播放| 欧美限制级电影在线观看| 日韩欧美在线网址| 欧美精品一本久久男人的天堂| 色黄久久久久久| 成人午夜一级二级三级| 久久的精品视频| 国产精自产拍久久久久久蜜| 亚洲第一视频网| 国产成人小视频在线观看| 久久91精品国产| 亚洲另类激情图| 日韩av123| 久久久久久伊人| 在线观看精品自拍私拍| 国产精品欧美一区二区三区奶水| 7777kkkk成人观看| 国产精品video| 欧美最猛性xxxx| 日韩高清免费在线| 激情久久av一区av二区av三区| 韩日精品中文字幕| 精品国产一区av| 国产精品久久精品| 91日韩在线播放| 国产一区二区三区丝袜| 亚洲bt天天射| 中文字幕欧美视频在线| 欧美老妇交乱视频| 国产精品揄拍500视频| 夜夜嗨av色综合久久久综合网| 国产精品普通话| xxxxx成人.com| 91在线免费观看网站| 亚洲mm色国产网站| 欧美日韩精品二区| 国产精品久久久久福利| 久久综合久久美利坚合众国| 日韩欧美一区二区三区| 欧美高清在线播放| 亚洲午夜女主播在线直播| 精品久久久久久中文字幕大豆网| 成人两性免费视频| 91免费看视频.| 亚洲国产精彩中文乱码av| 欧美精品videos另类日本| 91黄色8090| 91久久精品国产91性色| 欧美黑人性猛交| 国产日韩欧美中文| 国产日韩欧美成人| 97香蕉超级碰碰久久免费的优势| 国产精品一区二区女厕厕| 性色av一区二区三区在线观看| 国产精品高潮呻吟久久av野狼| 久久影视电视剧免费网站| 欧美黄网免费在线观看| 久久精品视频在线播放| 亚洲字幕一区二区| 国产成人精品在线视频| 国产精品视频网址| 国产91色在线播放| 91免费精品国偷自产在线| 亚洲一区二区福利| 色偷偷噜噜噜亚洲男人| 国产一区二区丝袜高跟鞋图片| 8x海外华人永久免费日韩内陆视频| 国产噜噜噜噜久久久久久久久| 亚洲第一区中文字幕| 久久的精品视频| 国产欧美精品日韩精品| 九九九久久国产免费| 国产成人av网址| 亚洲美女在线看| 亚洲女人天堂网| 亚洲最大福利视频网| 国内精品国产三级国产在线专| 亚洲人成电影网站色www| 欧美高跟鞋交xxxxxhd| 亚洲精品国产美女| 久久精品国产91精品亚洲| 成人97在线观看视频| 欧美影院成年免费版| 欧美孕妇毛茸茸xxxx| 欧美俄罗斯性视频| 久久99久久99精品中文字幕| 亚洲人午夜精品免费| 91精品成人久久| 国产亚洲在线播放| 久久免费在线观看| 日本精品va在线观看| 国产精品91久久久| 国产成人免费91av在线| 亚洲成人精品久久| 欧美精品日韩www.p站| 欧美性猛交xxxx免费看久久久| 久热在线中文字幕色999舞| 97香蕉超级碰碰久久免费软件| 欧美大片免费观看|