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

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]);
}

laravel ajax 实现省市区三级联动的更多相关文章

  1. 第117天:Ajax实现省市区三级联动

    Ajax实现省市区三级联动 思路: (1)首先获取省份信息 (2)发起Ajax请求,注意dataType中的T大写 (3)封装回调函数,回调函数success中用$.each循环每一条数据,动态创建o ...

  2. 基于ThinkPHP+AJAX的省市区三级联动

    练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...

  3. 基于thinkphp和ajax的省市区三级联动

    练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...

  4. (jquery+ajax)省市区三级联动(封装和不封装两种方式)-----2017-05-14

    首先,要实现如下图效果, 1.要理清思路: 先做出三个下拉菜单----根据第一个下拉菜单的value值获取第二个下拉列表的内容,第三个同理. 2.用到的数据库表:Chinastates表 规律:根据国 ...

  5. ajax省市区三级联动

    jdbc+servlet+ajax开发省市区三级联动 技术点:jdbc操作数据库,ajax提交,字符拦截器,三级联动 特点:局部刷新达到省市区三级联动,举一反三可以做商品分类等 宗旨:从实战中学习 博 ...

  6. Ajax来实现下拉框省市区三级联动效果(服务端基于express)

    //服务端JS代码: //提供服务端的处理 const express = require('express'); const fs = require('fs'); const app = expr ...

  7. 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

    使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下 ...

  8. JS省市区三级联动

    不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...

  9. 省市区三级联动(二)JS部分简单版

    通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...

  10. 【JavaScript&jQuery】省市区三级联动

    HTML: <%@page import="com.mysql.jdbc.Connection"%> <%@ page language="java&q ...

随机推荐

  1. 解决移动H5页面的刷组造成件传值数据丢失问题

    问题描述 当前页面由2个组件组成分别命名成a,b,其中组件b(子)需要组件a(父)内接口响应的时间字段,因为组件b不能实时的接收到数据 因此组件b在接收数据的时用定时器加了一个延迟,但是在网络不好或者 ...

  2. Jest - Using test function to test the function

    Note: Please check the prev blog to see the jest configuration. calculator.js const plus = (a, b) =& ...

  3. COMP3357 Cryptography

    课程内容笔记,自用,不涉及任何 assignment,exam 答案 Notes for self use, not included any assignments or exams Course ...

  4. JavaScript基础知识整理(引用类型-Function)

    Function Function类型实际上是对象,每个函数都是Function类型的实例,自然也就具有属性和方法. 定义函数通常有三种方式 使用函数声明 function sum(num1,num2 ...

  5. SQL CASE 标注

    根据 状态值 显示中文备注 case when a.zht='0' then '录入' when  a.zht='1' then '待审核' when a.zht='2' then '已审核' end ...

  6. MyBatisPlus 报MP_OPTLOCK_VERSION_ORIGINAL not found. Available parameters are错误

    配置mybatisplus乐观锁的过程 1.在数据库表中添加version字段类型int 2.在实体类中增加version属性,属性上增加@Version注解 3.配置乐观锁插件 @Configura ...

  7. golang 实现twitter雪花算法

    1 /* 2 * twitter雪花算法golang实现,生成唯一趋势自增id 3 * 保留位:63位 4 * 毫秒时间戳:[62-20]43位,时间范围[1970-01-01 00:00:00.00 ...

  8. hive复制表

    create table talbe_copy as select * from talbe_origin;

  9. Excel error - the macros in this project are disabled, please refer to the online help or documentation of the host application to determine how to enable macros.

    alt+F11 进入vba界面,F5运行macro后报错. Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To S ...

  10. IIS部署HTTPS站点

    常用的IIS大体有二个版本: IIS8和IIS7,分别有不同的配置方法如下: IIS8.5以上版本 1).新建一个站点,切记尽量不要与旧http协议站点共用一个站点,容易冲突 2).先将https证书 ...