jQuery select三级联动

news2024/10/9 2:25:26

功能描述:

1 实现三级联动,ajax请求数据。

  1. 根据选定级别,查询该级别下的项目类别;
  2. 根据选择类别,查询该级别+类别下所属项目列表;

前端涉及知识点:
(1)(‘#app’).change() 下拉框选择事件;
(2)ajax() ajax发送请求;
(3)(“#app”).empty(); 清空元素内容;
(4)( “#app” ).append(); 向元素压入元素;

<tr>
    <td width='16%' height=25 bgcolor='ffffff'><span style="color: red;">*</span>被认定的最高级别</td>
    <td bgcolor='ffffff'>
        <select name="ftitle" id="ftitle">
            <option value="">选择项目最高级别</option>
            <option value="0">国家级</option>
            <option value="1">省级</option>
            <option value="2">市级</option>
            <option value="3">县级</option>
        </select>
    </td>
</tr>
<tr>
    <td width='16%' height=25 bgcolor='ffffff'><span style="color: red;">*</span>选择类别</td>
    <td bgcolor='ffffff'>
        <select class="category" name="category" id="category">
            <option value="">选择类别</option>
        </select>
    </td>
</tr>
<tr>
    <td width='16%' height=25 bgcolor='ffffff'><span style="color: red;">*</span>项目</td>
    <td bgcolor='ffffff'>
        <select id="classalias" class="classalias">
            <option value="">选择项目</option>
        </select>
    </td>
</tr>

<script type="text/javascript">
    $('#ftitle').change(function(){
        var ftitle = $('#ftitle').val();
        var leibieurl = "e/Info/master.php";
        $.ajax({
            url: leibieurl,
            data: { "ftype": ftitle,"type" :1 },
            datatype: "json",
            type: "post",
            success: function (data) {
                var datas = JSON.parse(data);
                var categoryHtml = "";
                 $("#category").empty();
                for (var i in datas) {
                    categoryHtml += "<option value='" + datas[i] + "'>" + datas[i] + "</option>";
                }
                $( "#category" ).append( categoryHtml );
            }
        });

    });
    $('#category').change(function(){
        var ftitle = $('#ftitle').val();
        var category = $(this).val();
        var leibieurl = "e/DoInfo/master.php";
        $.ajax({
            url: leibieurl,
            data: { "ftype": ftitle,"category" :category ,"type" :2 },
            datatype: "json",
            type: "post",
            success: function (data) {
                var datas = JSON.parse(data);
                var classaliasHtml = "";
                 $("#classalias").empty();
                for (var i in datas) {
                    classaliasHtml += "<option value='" + datas[i] + "'>" + datas[i] + "</option>";
                }
                $( "#classalias" ).append( classaliasHtml );
            }
        });
    });
</script>

e/Info/master.php

<?php
require("../class/connect.php");
require("../class/db_sql.php");
require("../data/dbcache/class.php");
require("../member/class/user.php");
require("../class/q_functions.php");
require LoadLang("pub/fun.php");
$link=db_connect();
$empire=new mysqlquery();
//验证是否登陆
$user=islogin();
$type=(int)$_POST['type'];
$ftype=(int)$_POST['ftype'];
if ($type == 1) {
    //取得模型id
    $ttsql=$empire->query("select id,leibie from {$dbtbpre}ecms_master where type='$ftype'");
    $lbArr = [];
    while($ttr=$empire->fetch($ttsql))
    {

        $lbArr[] = $ttr['leibie'];
    }
    $lbarr = array_unique($lbArr);
} elseif ($type == 2) {
    $leibie = $_POST['category'];
    $sql = "select id,xiangmu from {$dbtbpre}ecms_master where type='$ftype' AND leibie = '$leibie'";
    $ttsql=$empire->query("select id,xiangmu from {$dbtbpre}ecms_master where type='$ftype' AND leibie = '$leibie'");
    $lbArr = [];
    while($ttr=$empire->fetch($ttsql))
    {
        $lbArr[] = $ttr['xiangmu'];
    }
    $lbarr = array_unique($lbArr);
}

db_close();
$empire=null;
exit(json_encode($lbarr));
?>

2 根据选择内容,增加/删除元素。

  1. 选择级别,需要对应填写该级别以及该级别以下的认证信息。比如:选择省级,就需要填写省级、市级、县级的认证信息。
  2. 认证信息框中,级别默认,不能再下拉筛选;

前端涉及知识点:
(1)find() 查询元素;
(2)使用for循环,从后往前remove删除元素;
(3)(“select[name=‘declaration_1[]’]”).each() 查询元素集,并遍历元素;

<script>
    function domvadd_declaration() {
        var i;
        var str = '';
        var oldi = 0;
        var j = 0;
        var addnum = 0;
        addnum = parseInt( document.add.mvaddnum_declaration.value );
        oldi = parseInt( document.add.mveditnum_declaration.value );
        j = parseInt( addnum + oldi );
        str = str + '<tr><td style="font-weight: 700;">认定情况' + j + '</td></tr><tr><td  width="16%" ><span style="color: red;">*</span>级别</td><td align="center"><select name="declaration_1[]" id="declaration_1_' + j + '"><option value="">选择级别信息</option><option value="国家级">国家级</option><option value="省级">省级</option><option value="市级">市级</option><option value="县级">县级</option><option value="其他">其他</option></select></td><td></td></tr><tr><td  width="16%">编号</td><td align="center"><input type="text" name="declaration_2[]" id="declaration_2_' + j + '" value=""></td></tr><tr><td  width="16%">类别</td><td align="center"  width="60%"><input type="text" name="declaration_3[]" id="declaration_3_' + j + '" value=""></td><td></td></tr><tr><td  width="16%" ><span style="color: red;">*</span>列入时间</td><td align="center"><input type="text" name="declaration_4[]" id="declaration_4_' + j + '" value="" readonly="readonly"></td></tr><tr><td  width="16%">批次</td><td align="center"><input type="text" name="declaration_5[]" id="declaration_5_' + j + '" value=""></td></tr><tr><td  width="16%"><span style="color: red;">*</span>项目名称</td><td align="center"><input type="text" name="declaration_6[]" id="declaration_6_' + j + '" value=""></td></tr><tr><td  width="16%">申请地区和单位</td><td align="center"><input type="text" name="declaration_7[]" id="declaration_7_' + j + '" value=""></td></tr><tr><td  width="16%">认证单位</td><td align="center"><input type="text" name="declaration_8[]" id="declaration_8_' + j + '" value=""></td></tr>';
        $( "#mvadd_declaration" ).append( str );
        var str2 = '<s' + 'cript type="text/javascript">$("#declaration_4_' + j + '").dateSelect();</s' + 'cript>';
        $( "#mvadd_declaration" ).append( str2 );
        $( "#mveditnum_declaration" ).val( j );
    }
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="mvadd_declaration">
    <?php
    $editnum = 1;
    for ( $i = 1; $i <= $editnum; $i++ ) {
        ?>
    <tr>
        <td style="font-weight: 700;">认定情况1</td>
    </tr>
    <tr>
        <td width="16%"><span style="color: red;">*</span>级别</td>
        <td align="center">
            <select name="declaration_1[]" id="declaration_1_1">
                <option value="">选择级别信息</option>
                <option value="国家级">国家级</option>
                <option value="省级">省级</option>
                <option value="市级">市级</option>
                <option value="县级">县级</option>
                <option value="其他">其他</option>
            </select>
        </td>
        <td></td>
    </tr>
    <tr>
        <td width="16%">编号</td>
        <td align="center" width="60%"><input type="text" name="declaration_2[]" id="declaration_2_1" value="">
        </td>
    </tr>
    <tr>
        <td width="16%">类别</td>
        <td align="center"><input type="text" name="declaration_3[]" id="declaration_3_1" value="">
        </td>
    </tr>
    <tr>
        <td width="16%"><span style="color: red;">*</span>列入时间</td>
        <td align="center"><input type="text" name="declaration_4[]" id="declaration_4_1" value="" readonly="readonly">
        </td>
    </tr>
    <tr>
        <td width="16%">批次</td>
        <td align="center"><input type="text" name="declaration_5[]" id="declaration_5_1" value="">
        </td>
    </tr>
    <tr>
        <td width="16%"><span style="color: red;">*</span>项目名称</td>
        <td align="center"><input type="text" name="declaration_6[]" id="declaration_6_1" value="">
        </td>
    </tr>
    <tr>
        <td width="16%">申请地区和单位</td>
        <td align="center"><input type="text" name="declaration_7[]" id="declaration_7_1" value="">
        </td>
    </tr>
    <tr>
        <td width="16%">认证单位</td>
        <td align="center"><input type="text" name="declaration_8[]" id="declaration_8_1" value="">
        </td>
    </tr>
    <?php
    }
    ?>
    </tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <script type="text/javascript">
            $( "#declaration_4_1" ).dateSelect();
        </script>
        <td height="25"> <input name="mveditnum_declaration" type="hidden" id="mveditnum_declaration" value="<?=$editnum?>">
            <input name="mvnum_declaration" type="hidden" id="mvnum_declaration" value="8">
            <input name="mvmust_declaration" type="hidden" id="mvmust_declaration" value="1">
            <input name="mvaddnum_declaration" type="text" id="mvaddnum_declaration" value="1" size="6" style="display: none;"> <input type="button" name="Submit5" value="添加另一个认证" onclick="javascript:domvadd_declaration();">
        </td>
    </tr>
</table>

总结

又是不想写总结的一天,没什么才艺,给大家展示个乒乓对打吧~

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

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

相关文章

【云原生kubernetes】k8s控制器Deployment使用详解

前言 在上一篇我们聊了k8s中各种控制器的使用&#xff0c;本篇将以控制器中比较常用的一种控制器Deployment 进行详细的说明。 一、Deployment 简介 为了更好解决服务编排的问题&#xff0c;kubernetes在V1.2版本开始&#xff0c;引入了Deployment控制器&#xff1b; 需要说明…

47 转置卷积【动手学深度学习v2】】

47 转置卷积【动手学深度学习v2】】 深度学习学习笔记 学习视频&#xff1a;https://www.bilibili.com/video/BV17o4y1X7Jn/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_source75dce036dc8244310435eaf03de4e330 转置卷积 卷积不会增大输入的高…

【Python小游戏】99%的人都不知道,“猜数字”游戏这么玩才能快速胜出,少年,要不要来猜猜看啊~(附源码)

前言 日子从不亏欠&#xff0c;每一个努力向上的人&#xff0c; 未来的走运, 都是过往尽力的积累。 人勤春来早&#xff0c;奋进正当时。新春伊始&#xff0c;我们迎来了2023年开工第一天。 栗子同学恭祝大家开工大吉&#xff0c;新年新气象&#xff0c;万事开门红&#xff…

Spring事务案例:模拟银行转账

Spring事务案例&#xff1a;模拟银行转账一. 概念二. 原程序2.1 表&#xff1a;2.2 service层接口&#xff1a;2.3 dao层接口&#xff1a;2.4 service实现类&#xff1a;2.5 测试用例&#xff1a;三.使用事务改进3.1 开启注解式事务驱动&#xff1a;3.2 开启事务&#xff1a;3.…

python使用pptx库-从一个ppt复制页面到另一个ppt里面

python使用pptx库-从一个ppt复制页面到另一个ppt里面 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、原理 如题&#xff0c;我有一个模板课件.pptx&#xff1a; 其内容&#xf…

百趣代谢组学文献分享:大麦盐胁迫响应机制的组学分析

前言 百趣代谢组学文献分享&#xff0c;我国受盐碱化危害耕地面积超过1.4亿亩&#xff0c;严重危险粮食安全和三农问题的解决。因此开发耐盐农作物并研究其耐盐机制具有迫在眉睫的重要意义。 代谢组学文献分享&#xff0c;浙江大学吴德志教授研究组最近发表的研究成果比较了耐…

Jmeter之界面语言设置

一、临时性设置中文 临时性设置&#xff1a;设置后只对本次使用有效&#xff0c;重启Jmeter后恢复默认语言。 选择Options—>Choose Language—>选择其他语言&#xff08;例如&#xff1a;Chinese&#xff08;Simplified&#xff09;简体中文&#xff09;设置成功。重启…

32 基变换和图像压缩

一、知识概要 本节主题是线性变换与矩阵的关联&#xff0c;从图像压缩与信号处理的应用引入&#xff0c;介绍几种方便的基向量&#xff1a;傅里叶&#xff0c;小波。最后从代数角度大体上介绍了基变换与变换矩阵的关系。 二、图像处理 首先我们假设有一个 512 * 512 的黑白图…

StarRocks斩获「2022 掘金引力榜」年度技术品牌传播案例 Top 10!

近日&#xff0c;由稀土掘金技术社区打造的「掘金引力榜」正式公布&#xff0c;由StarRocks社区举办的StarRocks Summit Asia 2022荣获「掘金引力榜 2022 年度技术品牌传播案例 Top10」&#xff01;掘金是面向全球中文开发者的技术社区。「掘金引力榜」是由稀土掘金技术社区打造…

【MyBatis持久层框架】配置文件实现增删改查实战案例(下)

前言 前面我们学习了 MyBatis 持久层框架的原生开发方式和 Mapper 代理开发两种方式&#xff0c;解决了使用 JDBC 基础性代码操作数据库时存在的硬编码和操作繁琐的问题。 在配置文件实现增删改查上篇中&#xff0c;我们详细讲解了常用的查询操作&#xff0c;例如查询所有数据…

Spring Boot 项目 - API 文档搜索引擎

在线体验 : http://43.139.1.94:9090/index.html项目 Gitee 链接 : API 文档搜索引擎1.认识搜索引擎我们平时查百度, 搜狗的时候, 结果页会显示若干条相关结果 , 每个结果几乎都包含图片, 标题, 描述, 展示 URL以及时间等等.1.1 搜索引擎的本质输入一个查询词, 得到若干个结果,…

stm32学习笔记-1 STM32简介

1 STM32简介 [toc] 注&#xff1a;笔记主要参考 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注&#xff1a;工程及代码文件放在了本人的Github仓库。 1.1 套件简介 本教程使用STM32最小系统板&#xff08;STM32F103C8T6&#xff09;面包板硬件平台进行学习。…

微信小程序 Springboot校园自动点餐系统带跑腿 java

开发语言&#xff1a;Java 小程序前端框架&#xff1a;uniapp 小程序运行软件&#xff1a;微信开发者 可选运行软件:webapp (hbuiderx) 前端开发语言:vue.js 后端技术:Springboot(SpringSpringMVCMyBatis) 可选技术:springboot 后端开发环境:idea和eclipse都支持 数据库:mysql …

六、服务端开发

服务器端开发&#xff1a;服务器设计框架&#xff1a;缓解和转发的作用连接音箱和app最大一个作用转发一个app操作音箱app绑定音箱服务器类实现&#xff1a;jsoncpplibventverser.h#ifndef SERVER_H #define SERVER_H#include <event.h>#define IP "172.17.7.99&…

【C++入门】缺省参数

目  录1 缺省参数1.1 缺省参数概念1.2 缺省参数分类1.3 缺省参数使用注意1 缺省参数 1.1 缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。 在调用该函数时&#xff0c;如果没有指定实参&#xff0c;则采用该形参的缺省值&#xff0c;否则使用指定的实…

Spring Profiles 实现多环境配置 ,切换环境

Spring Profiles 实现多环境配置 Spring Profiles 就是针对应用程序&#xff0c;不同环境需要不同配置加载的一种解决方案。 使用场景: 我们平常项目开发&#xff0c;经常需要根据不同的环境进行配置的修改&#xff0c;比如在本地开发会加载本机的配置和开发环境数据库&#x…

【NKOJ-昨天今天和明天】考试游记

目录 昨天上午的序列 - 30pts今天上午的扫除 - 100pts明天上午的教室 - 100pts明天上午的数组 - 100pts明天上午的函数 - 100pts 题目排序太合理了,EDCBA依次变难,导致我对着A题苦思冥想了半小时...但是A题是[LeetCode 907. 子数组的最小值之和]的换皮题(除了题目一点没变)然…

初始OAuth2.0

1. 什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制&#xff0c;用于授权第三方应用获取用户的数据。 举例说明&#xff1a;用户可以通过选择其他登录方式来使用gitee&#xff0c;这里就使用到了第三方认证。 OAuth 引入了一个授权层&#xff0c;用来分离两种不同的角色…

前端工程化

一、前端工程化1、webpack&#xff08;1&#xff09;定义&#xff1a;是一个前端的构建工具。前端代码格式多&#xff08;html、css、js、图片&#xff09;&#xff0c;前端构建工具的作用是将各种格式不同文件打包到一起&#xff0c;方便项目的上线运行。&#xff08;将开发环…

Java学习笔记---干货

Java学习 一、java版本 JavaSE &#xff1a;标准版&#xff08;桌面应用程序、控制台程序&#xff09; JavaEE&#xff1a;E企业级开发&#xff08;Web端&#xff0c;服务器的开发&#xff09; JDK&#xff1a;Java开发工具 JRE&#xff1a;Java运行环境 JVM&#xff1a;…