首先将省市区的数据存储到数据库中

sql文件地址:http://m.caomeipi.com/

html

<select name="province" style="width: 150px;" class="province form-control">
<option>==请选择省==</option>
@foreach($province as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
<select name="city" style="width: 150px;" class="city">
<option value="0">==市==</option>
</select>
<select name="area" style="width: 150px;" class="area">
<option value="0">==区/县==</option>
</select>

js

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script type="application/javascript">
$(function () {
//当省选项值发生变化的时候,发送ajax请求,获取对应的市区信息,并渲染
$('.province').change(function () {
var province = $(this).val(); $.ajax({
//请求方式
type : "get",
//请求的媒体类型
contentType: "application/json;charset=UTF-8",
//请求地址
url : "getcity",
//数据,json字符串
data : {
"province":province
},
//请求成功
dataType:"json",
success : function(result) {
//console.log(result)
if(result.status == 0)
{
var citys = result.data; var optionstr = "";
//渲染city选择框
for(var i = 0; i < citys.length; i++)
{
var city = citys[i];
optionstr += "<option value='" + city.id + "'>" + city.name + "</option>";
}
$('.city').html(optionstr);
}
else
{
alert(result.message);
}
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
})
})
$(function () {
//当市选项值发生变化的时候,发送ajax请求,获取对应的区信息,并渲染
$('.city').change(function () {
var city = $(this).val();
console.log(city);
$.ajax({
//请求方式
type : "get",
//请求的媒体类型
contentType: "application/json;charset=UTF-8",
//请求地址
url : "getarea",
//数据,json字符串
data : {"city":city},
//请求成功
dataType:"json",
success : function(result) {
//console.log(result)
if(result.status == 0)
{
var areas = result.data;
console.log(areas);
var optionstr = "";
//渲染city选择框
for(var i = 0; i < areas.length; i++)
{
var area = areas[i]; optionstr += "<option value='" + area.id + "'>" + area.name + "</option>";
} $('.area').html(optionstr); }
else
{
alert(result.message);
} },
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
})
}) </script>

controller

//添加页面 并获取省的信息
public function addpaper(){
$province = DB::table('region')->where('pid',100000)->get();
return view('addpaper',compact('province'));
}
//市三级联动
public function getCity(Request $request)
{
$province = $request['province'];
$citys = DB::table('region')->where('pid','=',$province)->get()->toArray();
return json_encode(['status' => 0, 'data' => $citys]);
}
//区三级联动
public function getArea(Request $request)
{
$city = $request['city'];
$area = DB::table('region')->where('pid','=',$city)->get()->toArray();
return json_encode(['status' => 0, 'data' => $area]);
}

最新文章

  1. python3: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
  2. COGS729. [网络流24题] 圆桌聚餐
  3. c#向数据库插入较大数据(SqlBulkCopy)
  4. 轻松自动化---selenium-webdriver(python) (一)
  5. Class.isAssignableFrom(Class clz)与instanceof与Class.isInstance(Object obj) 的区别和联系
  6. Linq实现DataTable的分组统计
  7. 2014年度辛星html教程夏季版第六节
  8. python代码风格规范
  9. 关于safari上的select宽高问题小技,自定义下拉框
  10. tls和ssl
  11. SQLite For .Net 已经整合了32位和64位
  12. Python初识与简介【开篇】
  13. 给指针malloc分配空间后就等于数组吗?【转】
  14. ArrayList 如何完美去除空值
  15. HMM隐马尔科夫算法(Hidden Markov Algorithm)初探
  16. ucos中的中断管理
  17. awk命令小结
  18. android-读取MediaProvider
  19. [httpd][daily] 查看并修改httpd的最大fd打开个数limit
  20. nodejs中async使用

热门文章

  1. Linux网络第四章:SSH远程管理及通过SSH实现服务器之间的免密连接
  2. java8 stream 常用操作
  3. Burp学院-信息泄露
  4. shell_Day06
  5. Python170道面试题
  6. mt5获取双色球
  7. SQL正则查询--查询有效邮箱
  8. WPF-窗体移动,最小化,最大化,关闭
  9. vite + vue3 + js + xlsx 导出excel
  10. RabbitMQ管理界面使用之手动送数据