php 下拉菜单多选get,Jquery实现select二级联动多选下拉菜单

前言

平时虽然也有写前端,但是对于一些复杂的功能实现仍是一知半解。这次项目需要实现一个多选下拉菜单,并且该菜单要和上级下拉菜单保持联动。更加麻烦的是,我需要完成以下操作,以省、市二级联动菜单为例:

选择河北省 >> 二级菜单显示河北省所有市 >> 多选其中石家庄、邢台、保定

再选择河南省 >> 二级菜单显示河南省所有市 >> 多选其中驻马店、郑州

...

重复以上步骤

也就是说我要同时选择多个省内的多个市,而简单的二级联动菜单貌似无法完成这个步骤,所以便有了如下方案:

d6f822e3e107?t=123

demo.png

在点击添加后,在下拉菜单结果中,会保存已经被选中的选项。之后,我们便可以修改大类中的选项,实现小类中的再次多选

实现代码

JS代码

function getSelectVal() {

//获取后台json数据

$.getJSON("server.php", {

bigname: $("#bigname").val()

}, function(json) {

var smallname = $("#smallname");

$("option", smallname).remove(); //清空原有的选项

$.each(json, function(index, array) {

var option = "" + array['title'] + "";

smallname.append(option);

});

});

}

// 选择上级菜单选项触发事件

$(function() {

getSelectVal();

$("#bigname").change(function() {

getSelectVal();

});

});

//点击添加,获取选中选项的value和text

$(document).ready(function() {

$("#add").click(function() {

var result = $("#result");

$("#smallname option:selected").each(function(){

console.log($(this).val() + $(this).text());

var option = "" + $(this).text() + "";

result.append(option);

});

});

});

大类:

编程技术

社交网站

好吃的

小类:

添加

结果:

模拟数据库返回数据的后台文件

$bigid = $_GET["bigname"];

if(isset($bigid)){

if($bigid == 1){

$select = array(

'0' => ['id' => 1,'title' => 'JS'],

'1' => ['id' => 2,'title' => 'PHP'],

'2' => ['id' => 3,'title' => 'C++'],

'3' => ['id' => 4,'title' => 'LUA'],

'4' => ['id' => 5,'title' => 'CSS'],

);

}else if($bigid == 2){

$select = array(

'0' => ['id' => 1,'title' => '人人'],

'1' => ['id' => 2,'title' => 'FACEBOOK'],

'2' => ['id' => 3,'title' => '微博'],

'3' => ['id' => 4,'title' => '朋友圈'],

'4' => ['id' => 5,'title' => '空间'],

);

}else if($bigid == 3){

$select = array(

'0' => ['id' => 1,'title' => '牛肉面'],

'1' => ['id' => 2,'title' => '土豆粉'],

'2' => ['id' => 3,'title' => '盖饭'],

'3' => ['id' => 4,'title' => '火锅'],

'4' => ['id' => 5,'title' => '大便'],

);

}

echo json_encode($select);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea快捷键打开run的窗口_看了上篇文章,你不了解的IDEA操作……

注意作者:卡洛小豆。换种方式写文章,写的不好请多多见谅。未经授权,禁止转载夜,结束了一天的喧嚣后安静下来,伴随着远处路灯那微弱的光。风,毫无预兆地席卷整片旷野,撩动人的思绪万千。那是一个…

oracle查看物化视图的索引,oracle – 物化视图中的域索引返回零行

我有Oracle DB的问题 – 在物化视图上通过CONTAINS()搜索后,域索引返回零行.我看到物化视图充满了数据,我还使用过程ctx_ddl.sync_index()进行域索引同步.什么有用:>创建表>插入数据>创建域索引> SYNC DOMAIN INDEX>通过包含找到行 – 返回行什么不起…

arma模型_Eviews经典案例 | 初学者必看!ARMA模型精讲

【本期分析师介绍】希音老师,《数据分析学堂》金牌分析师,对eviews的时间序列、ARMA、VAR、VECM、ARCH、GARCH等操作有深入的研究和实战经验,累计服务客户1000。今天邀请希音老师给大家分享eviews的详细操作步骤。长文预警!可在文末联系麻瓜学…

oracle活跃用户,监控数据库中的活跃用户及其运行

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼[sql] view plain copy print?set linesize 120 pagesize 66col c1 for a9col c1 heading "OS User"col c2 for a9col c2 heading "Oracle User"col b1 for a9col b1 heading "Unix PID"col b2 for…

c# 路径下的最近文件夹_C#8.0的两个有趣的新特性以及gRPC

最近每天忙着跑很多地方,回家就不想动了,没什么心情写东西。今天有空,稍微写一点。下文中:关于C#语法特性的部分需要Visual Studio 2019支持。关于.NET Core的部分需要安装.NET 3.0 Preview4,低版本或许也可以但我没实…

alter table add column多个字段_ElementUI表格el-table表头固定自适应高度解决方案

一、前言ElementUI、iView都以相同的方式提供了表格组件表头固定的方法,即设置组件的height属性。表头固定很重要,就在于当表格数据项很多时,滚动条出现在表格组件内,而不是出现在表格组件外——这样的优点在于,滚动浏…

oracle ora 12011,执行oracle中的job报错:ORA-12011:无法执行作业1

LZ在做一个job执行每天新增一个表的操作时,存储过程运行没问题,job也创建成功,但运行job时,却报错: ,后又用sys用户登陆创建了同样的存储过程和job,结果可以执行成功。当时就猜测是权限问题。后…

e盘是否具有读写权限_轻松搭建MySQL主从复制、读写分离(双机热备)

主从复制: 当mysql数据库的数据量太大的时候,查询数据就很吃力了,无论怎么优化都会产生瓶颈,这时我们需要增加服务器设备来实现分布式数据库,实现多机热备份,要想实现多机的热备,首先要了解主从…

linux运维之道基础命令,Linux运维之道(7)——Linux管理类命令

(Linux)[系统管理]1. 目录管理类命令1.1 cd命令格式:cd [-L|[-P [-e]] [-]] [dir]被你忽略的小知识:在这里科普一个小小的知识点,就是关于cd -为什么可以自由的在当前目录和之前目录相互切换?其实,在我们的 Shell 的环…

html画图代码_python之matplotlib画图教程(2)

各位小表贝,你们的画图小老弟又来咯~上一次我们聊到了如何画离散图,这一次我们来点复杂的,准备好了么,系好安全带,准备发车咯~滴滴~我们先来点比较简单,那种易于上手的。如果现在我知道了两个点的坐标&…

在linux上面找一个脚本,30个Linux Shell脚本经典案例

在学习Linux运维时,普遍反馈是:Linux Shell是一个很难的知识板块。虽然大家都认真学,基本的语法也都掌握了,但有需求时,很难直接上手编程,要么写了很久,要么写不好!也有很多做运维很…

python图像识别代码_用Python进行简单图像识别(验证码)

这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt文件中 #-*-encoding:utf-8-*- import pytesseract from PIL import Image class GetImageDate(ob…

linux 端口添加地址,linux – 绑定,网络(接口)和多播地址有什么区别?

实际上你在这里混淆了三种方法.第一个是bind,用于将套接字绑定到指定的地址和端口.使用此方法基本上您打开一个udp-port并等待该地址上的此端口的数据.第二个是join-method,用于让套接字加入指定的多播组.组播组的示例是224.0.0.1 – “所有主机”组播组 – 其针对同一网段上的…

c++ map初始化_Go学习每日一问(18)-map元素查找

每次学习并整理一个Golang的知识点,每天进步一点点。今天学习下go中的一个知识点:map元素查找日省吾身1.下面代码中 A B 两处应该怎么修改才能顺利编译?func main() { var m map[string]int //A m["a"] 1 if v : m["b&q…

linux运维需要哪些网络知识,Linux运维学习笔记-网络技术知识体系总结

jTemplates部分语法介绍1.{#if} {#if |COND|}..{#elseif |COND|}..{#else}..{#/if} Examples: {#if 2*816} good {#else} fail {# ...解密jQuery内核 DOM操作方法(二)html,text,val回顾下几组DOM插入有关的方法 innerHTML 设置或获取位于对象起始和结束标签…

-bash: wget: 未找到命令_18个堪称神器的命令行工具,高效运维必备

上期入口:24个 CSS 高级技巧合集提示:因公众号不支持超链接,上图所有项目地址,可在公众号后台回复关键字 “命令行工具” 获取。thefuck命令行打错了以后,打一个fuck就会自动纠正。GitHub:https://github.c…

linux编辑java文本,linux下的文本编辑器VI的使用命令

1、 移动光标H        #移到屏幕的左上角M         #移到屏幕的中间行开头L          #移到屏幕的最后一行[         #移到文件开始位置 (双击)]         #移到文件结束位置(双击):n         #移到文件的第n行Ctrl b     …

python3.8.0安装_Python3.8.0

Python3.8.0是一款广受程序员欢迎的编程语言,也是面向对象的一款设计语言,Python以其语言的灵活和简易性,具有非常简捷而清晰的语法特点,在脚本工具、数据分析、web后端等等领域都有着优良的表现,收到了大家的广泛应用…

linux系统proc目录,快速了解Linux系统下的proc目录

/proc/devices文件这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。常用的命令为#cat /proc/devices(在调试驱动的时候这个还是有用的,可以通过lsmod查看驱动模块是否加载)/proc/interrupts这个文件的每一行都有一个保留的中断。每…

cv2.error: opencv(4.4.0)_【从零学习OpenCV 4】轮廓面积与长度

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解…