laravel ajax 实现省市区三级联动
首先将省市区的数据存储到数据库中
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 实现省市区三级联动的更多相关文章
- 第117天:Ajax实现省市区三级联动
Ajax实现省市区三级联动 思路: (1)首先获取省份信息 (2)发起Ajax请求,注意dataType中的T大写 (3)封装回调函数,回调函数success中用$.each循环每一条数据,动态创建o ...
- 基于ThinkPHP+AJAX的省市区三级联动
练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...
- 基于thinkphp和ajax的省市区三级联动
练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...
- (jquery+ajax)省市区三级联动(封装和不封装两种方式)-----2017-05-14
首先,要实现如下图效果, 1.要理清思路: 先做出三个下拉菜单----根据第一个下拉菜单的value值获取第二个下拉列表的内容,第三个同理. 2.用到的数据库表:Chinastates表 规律:根据国 ...
- ajax省市区三级联动
jdbc+servlet+ajax开发省市区三级联动 技术点:jdbc操作数据库,ajax提交,字符拦截器,三级联动 特点:局部刷新达到省市区三级联动,举一反三可以做商品分类等 宗旨:从实战中学习 博 ...
- Ajax来实现下拉框省市区三级联动效果(服务端基于express)
//服务端JS代码: //提供服务端的处理 const express = require('express'); const fs = require('fs'); const app = expr ...
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下 ...
- JS省市区三级联动
不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...
- 省市区三级联动(二)JS部分简单版
通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...
- 【JavaScript&jQuery】省市区三级联动
HTML: <%@page import="com.mysql.jdbc.Connection"%> <%@ page language="java&q ...
随机推荐
- Spring的AOP源码解析(二)
Spring AOP 源码解析 目录 Spring AOP 源码解析 前言 本文使用的调试代码 IOC 容器管理 AOP 实例 ProxyFactory 详解 基于注解的 Spring AOP 源码分 ...
- 蓝牙mesh组网实战(智能家居应用)
目录 蓝牙mesh组网目前存在有入门门槛高的问题,比如,嵌入式工程师需要考虑到标准mesh模型的兼容,app开发工程师需要了解mesh协议栈才能直接走mesh与芯片通信.而沁恒官方提供的透传模型简洁易 ...
- spring@Validated校验用法
1.controller添加注解 public BaseResponse addOrUpdateUnit(@RequestBody @Validated RiskUnitDto riskUnitDto ...
- Android学习——控件Notification
1.创建Notification和NotificationManager 2.NotificationChannel 3.常用方法说明
- Java枚举类的学习
package java1; /** * @author 高槐玉 * #Description: * 枚举类的使用 * 1,枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类 * 2.当需要 ...
- matlab读写文件操作
文件相对路径 在编码中尽可能使用相对路径: 1.当前路径下,直接:' xxx.bin ' 2.在下一级路径下,使用:' .\下一级路径文件名\xxx.bin ' 3.在上一级路径下,使用:' ..\x ...
- 【运维】解决composer update出现的Discard changes [y,n,v,d,s,?]的问题
在PHP项目中,composer是一个使用非常普遍的包管理工具,在本地开发的时候出现了这个问题一搬来说问题不大,可以人为进行输入交互,但是如果是自动化发布中出现,就会等待输入导致卡住,是一个需要解决的 ...
- Java期末课程设计--购物车的GUI(编辑中)
实现的功能 基本功能 使用admin登录 对商品表内的商品添加至购物车 结算价格 扩展功能 用户的登录注册(基于数据库) 钱包功能 结算前录入地址信息 丰富GUI(指插入图片) 管理员界面(对商品进行 ...
- Flink 消费RabbitMQ 和 Kafka
在消息RabbitMQ时,我们关心的一个问题是手动ack还是自动ack,如果是自动ack就怕出现丢消息的情况 Flink以RabbitMQ作为Source,是怎么保证消息唯一性的呢,是怎么保证ack的 ...
- 【Ubuntu】设置桌面文件夹路径
Ubuntu 系统会将桌面文件夹路径默认设置为 $HOME/Desktop,包括文档.下载.图片等文件夹路径都有各自的默认路径.若想更改这些文件夹路径,可参考『此链接』. 首先到希望更改的路径下建立桌 ...