使用Yii2中dropdownlist实现地区三级联动的例子
原文:http://www.yiichina.com/code/636
<?php
use 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);
}
});
}
});
');
?>
<?php
use 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);
}
});
}
});
');
?>
使用Yii2中dropdownlist实现地区三级联动的例子的更多相关文章
- 非常不错的地区三级联动,js简单易懂。封装起来了
首先需要引入area.js,然后配置并初始化插件: 例: <!-- 绑定银行卡开始 --> <script src="js/area.js"></sc ...
- 20150303--从SQL中获取数据的三级联动
省市地区的三级联动,每变更一次所选地都需要提交,但是又不需要把整个页面提交,所以我们需要使用控件:UdataPanel.工具--AJAX扩展 还有ScriptManager,并要将其放在页面的最顶端. ...
- angular实现地区三级联动
<!DOCTYPE html><html ng-app="myapp"> <head> <meta charset="UTF-8 ...
- ajax+struts2 实现省份-城市-地区三级联动
1.需求分析 2.js部分(通过ajax异步请求实现) 省份-->城市联动 城市-->地区 3.struts部分 struts.xml action部分 4.service部分 5.总结 ...
- PHP+AJAX 地区三级联动代码
<html><head><meta http-equiv="Content-Type" content="text/html; charse ...
- 【2017-05-05】timer控件、三级联动、帐号激活权限设置
一.Timer控件 Timer实际就是一个线程控件. 属性:Enabled 是否被启用 Interval 多长时间执行一次控件中的代码 事件: Tick 事件中放要执行的代码. ...
- timer控件、三级联动、帐号激活权限设置
一.Timer控件 Timer实际就是一个线程控件. 属性:Enabled 是否被启用 Interval 多长时间执行一次控件中的代码 事件: Tick 事件中放要执行的代码. ...
- 微信小程序 实现三级联动-省市区
github项目地址 https://github.com/z1511676208/chooseAddr 序:项目中需要用到三级联动,自己试着写了下,也查了一些资料,现在把这个记录一下,里面地区数 ...
- vue移动端地址三级联动组件(一)
vue移动端地区三级联动 省,市,县.用的vue+mintUi 因为多级联动以及地区的规则比较多.正好有时间自己写了一个.有问题以及建议欢迎指出.涉及到dom移动,所以依赖vue+jquery.这边数 ...
随机推荐
- js 延时
alert(1);setTimeout(function(){alert(2);}, 1000);setTimeout(function(){alert(3);}, 2000);
- Java获取yahoo天气预报
学习闲暇之余,写了个获取yahoo天气预报的java小程序,仅供娱乐. 首先我们需要获取您需要查询城市对应的代号,我们可以用HashMap来查询,代码如下: publicstatic HashMap& ...
- 下面关于XML叙述不正确的是( )
A.XML标记必须关闭 B.XML是大小写敏感的 C.XML文件只能跟DTD文件一块使用 D.XML和XSL结合可以在浏览器上显示 解答:C
- FusionMap 检测融合基因
定义:融合基因是指两个或者多个基因联合起来,一起转录形成一个转录本: 检测的意义:融合基因可以作为某些疾病的特异分子标记,比如 bcr/abl融合基因存在于95%以上的慢性粒细胞白血病患者中: AML ...
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
1.什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类. 2.为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implemen ...
- 解决 Comparison method violates its general contract!
问题:Comparison method violates its general contract!报错 Collections.sort(list, new Comparator<Integ ...
- 原型模式(prototype pattern)---------创造型模式
原型模式的缺点: 1.需要为每一个类配备一个克隆方法,而且该克隆方法位于一个类的内部,当对已有的类进行改造时,需要修改源代码,违背了开闭原则(open-closed discipline) 2.在实现 ...
- DOTween中的Time.Scale
因为在做游戏暂停的时候通常会使用Time.Scale = 0 ,可是暂停的时候UI如果需要继续有动画怎么办呢?在DoTween中只需要设置 tweener.SetUpdate(true ...
- 1亿条数据在PHP中实现Mysql数据库分表100张
当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过程如下: 首先创建100张表: $i=0; while($i<=9 ...
- web开发中的安全问题
web开发中很多东西由前段来负责判断,比如常见的邮箱 电话号码,前端判断到不是一个正确的格式,在你点击提交时候提示你格式填错了,然后不请求后端php,直到你填写正确的格式为止.这种其实可以修改js或者 ...