1. 程式人生 > >通過ajax實現部門與員工的二級級聯,三級級聯相同的原理

通過ajax實現部門與員工的二級級聯,三級級聯相同的原理

首先看一下簡單的樣式:
這裡寫圖片描述

在頁面載入完畢後,所有部門的名字也全部顯示在下拉框中,下拉框繫結onchange事件,通過ajax獲得部門對應的所有員工名。

在載入部門的時候,我用的是ssm框架中的ModelAndView物件綁定了一個引數,引數中有所有部門的資訊,在前臺通過jstl標籤處理引數。

html程式碼:

<form class="form-inline">
              <div class="form-group col-xs-offset-1">
                <label for="exampleInputName2"
>
部門:</label> <select id="department" class="form-control" style="margin-right: 50px;" onchange="getemployee()"> <option>==請選擇==</option> <c:forEach var="department" items="${DepartmentList}"> <option
value="${department.departmentId}">
${department.departmentName}</option> </c:forEach> </select> <label for="exampleInputEmail2">員工名:</label> <select id="employee" class="form-control" style="margin-right: 100px;"
onchange="alertdate()">
<option>==請選擇==</option> </select> <button class="btn btn-primary">儲存</button> </div>

後臺controller程式碼:

/**
     * 按個人排班頁面
     * @return
     */
    @RequestMapping("groupbyself")
    public ModelAndView GroupBySelf(){

        List<Department> departmentlist=scheduleservice.getAllDepaertment();

        ModelAndView mv=new ModelAndView();

        mv.setViewName("groupbyself");
        mv.addObject("DepartmentList", departmentlist);

        return mv;
    }

具體樣式如下,我資料庫中的部門只有一個。

這裡寫圖片描述

js部分onchange事件程式碼:

function getemployee(){

            var departmentId=$("#department").val();

            var departmentName=$("#department option:checked").text();

            $("#employee").html("<option>==請選擇==</option>"); //避免選擇同一個部門多次生成一個部門的員工,所以每次查詢員工前初始化

            $.ajax({
                url:"getEmployeeByDepartmentId",
                type:"post",
                async : false,
                data:{"departmentId":departmentId},
                success:function(msg){
                    if(msg!=null){
                        for(var i=0;i<msg.length;i++){
                            //alert(msg[i].employeeId);
                            $("#employee").append("<option value='"+msg[i].employeeId+"'>"+msg[i].employeeName+"</option>"); 
                        }
                    }
                }
            });

        }

第二個下拉框內容的後臺程式碼:

/**
     * 根據部門id,得到該部門所有的成員
     * @param departmentId
     * @return
     */
    @ResponseBody
    @RequestMapping(value="getEmployeeByDepartmentId",produces="application/json;charset=UTF-8")
    public String GetEmployeeByDepartmentId(int departmentId){

        JSONArray employees=scheduleservice.getEmployeeByDepartId(departmentId);

        return employees.toString();
    }

每觸發一次事件,就會獲取前一下拉框當前選中的部門的id。將部門的id傳入後臺得到該部門所有的員工,傳回json格式的字串,在回撥函式中通過for迴圈遍歷,生成新的option。

需要注意的地方就是每次觸發事件呼叫這個函式的時候,要將第二級下拉框的內容初始化為‘請選擇’。

這裡寫圖片描述

相關推薦

通過ajax實現部門員工二級三級相同原理

首先看一下簡單的樣式: 在頁面載入完畢後,所有部門的名字也全部顯示在下拉框中,下拉框繫結onchange事件,通過ajax獲得部門對應的所有員工名。 在載入部門的時候,我用的是ssm框架中的ModelAndView物件綁定了一個引數,引數中有所有部門的資

完整的Spring-boot實現(部門員工)

完整的spring-boot實現 工具:jdk1.7  -- eclipse --  Maven  目的:實現通過部門ID查詢部門及所有員工資訊 目錄結構: index.jsp <%@ page language="java" contentType="text/h

通過Samba實現LinuxWindows間的文件共享

一個 主機 是否 ios協議 har 資源共享 沒有 printer int Samba Samba,是用來讓Linux系列的操作系統與Windows操作系統的SMB/CIFS(Server Message Block/Common Internet File System

jquery的ajax實現PUTDELETE請求

實現PUT  $.ajax({ url: "http://localhost:10320/api/Person/4", type: "POST", data: JSON.stringify(whatever), headers: { "Content-

利用Ajax實現前端.net後端實現資料互動

使用場景和需求:使用者在位址列輸入請求地址,先.net伺服器傳送頁面請求,該頁面包含Echart圖表,在頁面中向.net後端傳送資料請求,獲取資料後,將資料填充到Echart圖表中。其中包含帶參與不帶參的請求方式。 不帶引數的請求例子。假設使用者訪問的URI為/HomeEx/ResidentEndowmen

Vue+Java servlet 通過websocket實現伺服器客戶端雙向通訊

1. vue程式碼 methods: { //在方法裡呼叫 this.websocketsend()傳送資料給伺服器 onConfirm () { //需要傳輸的資料 let data = { cod

通過IDOC實現EDISAP整合(四) - 接收來自SAP系統的IDOC

目錄 通過IDOC實現EDI與SAP整合(一) - 連線SAP系統 通過IDOC實現EDI與SAP整合(二) - 登入SAP系統 通過IDOC實現EDI與SAP整合(三) - 傳送IDOC到SAP系統 通過IDOC實現EDI與SAP整合(四) - 接收來自SAP系統的IDOC

通過IDOC實現EDISAP整合(三) - 傳送IDOC到SAP系統

目錄 通過IDOC實現EDI與SAP整合(一) - 連線SAP系統 通過IDOC實現EDI與SAP整合(二) - 登入SAP系統 通過IDOC實現EDI與SAP整合(三) - 傳送IDOC到SAP系統 通過IDOC實現EDI與SAP整合(四) - 接收來自SAP系統的IDOC

通過IDOC實現EDISAP整合(二) - 登入SAP系統

目錄 通過IDOC實現EDI與SAP整合(一) - 連線SAP系統 通過IDOC實現EDI與SAP整合(二) - 登入SAP系統 通過IDOC實現EDI與SAP整合(三) - 傳送IDOC到SAP系統 通過IDOC實現EDI與SAP整合(四) - 接收來自SAP系統的IDOC

通過IDOC實現EDISAP整合(一) - 連線SAP系統

目錄 通過IDOC實現EDI與SAP整合(一) - 連線SAP系統 通過IDOC實現EDI與SAP整合(二) - 登入SAP系統 通過IDOC實現EDI與SAP整合(三) - 傳送IDOC到SAP系統 通過IDOC實現EDI與SAP整合(四) - 接收來自SAP系統的IDOC

通過Ajax實現select動態載入option

JQuery通過ajax實現select動態載入option <script type="text/javascript"> //jquery採用ajax對select動態載入option

[2.2]Spark DataFrame操作(二)之通過反射實現RDDDataFrame的轉換

參考 場景 檔案/home/pengyucheng/java/rdd2dfram.txt中有如下4條記錄: 1,hadoop,11 2,spark,7 3,flink,5 4,ivy,27 編碼實現:查詢並在控制檯打印出每行第三個欄位值大於7

Android開發 通過JNI實現JAVAC/C++程式間的呼叫和回撥

       在一些Android應用的開發中,需要通過JNI和 Android NDK工具實現JAVA和C/C++之間的相互呼叫。        Java Native Interface (JNI)標準是java平臺的一部分,它允許Java程式碼和其他語言寫的程式碼進行

基於MT7688模組的開發筆記10——通過TFTP實現Ubuntu開發板之間的檔案傳輸

本篇文章是上一篇文章的繼續,在這篇文章裡我通過在Ubuntu上搭建TFTP伺服器,實現了在MT7688開發板上上傳和下載Ubuntu中的檔案,這為後面的程式開發提供了方便。 一、安裝TFTP伺服器:安裝tftp-hpa和tftpd-hpa軟體 1.1安裝第一個軟體 [ema

通過Ajax實現不顯示登入框的IIS-Windows整合身份驗證登入

<script type="text/javascript" language="javascript"> function Authen() { var location = "http://192.168.0.241/

通過nginx實現https以及https二級域名轉發

/**僅記錄自己的學習歷程,為以後的自己留一個參考**/ 最近在倒騰微信小程式,研究小程式怎麼和伺服器通訊,上一篇部落格裡通過nginx實現了http的二級域名轉發,結果發現https實現二級域名轉發又是另一會事,心累啊 目的:https://abc.com訪問主域名,使用

通過ajax實現對某個div的整體重新整理替換(非同步載入)

首先吐槽下公司的框架,grid的寬度可能是根據螢幕長度自動適應,但是遇到了一個問題, 隱藏的grid.show()時,寬度變為最小寬度,未解決該問題,不使用toggle的方法,直接通過ajax非同步載入該DiV,同時該方法也解決了grid的表頭不確定的問題 整體非同步載入

使用游標查詢10部門員工姓名和工資並列印 使用游標查詢員工姓名和工資並列印

                /*使用游標查詢10部門的員工姓名和工資,並列印*/set serveroutput ondeclare  --申明一個游標代表員工的姓名和工資  --cursor c1 is select ename,sal from emp;  --定義一個帶引數的游標  cursor c

共享資料夾—— 一個實現MacPC互傳檔案維護同一個資料夾簡單的方法

屋子裡一個桌上型電腦,一個Mac,經常需要傳檔案。之前要麼是用qq,要麼用網盤,要麼用U盤or行動硬碟。 雖然有點兒麻煩,但是一直懶得研究有什麼簡便方法。昨天覺得這麼整實在太low了,哪像一個搞計算機的,實在忍不了了,開始研究。 先是用Mac上的共享,然後資料夾共享,

MySQL中的行

在電腦科學中,鎖是在執行多執行緒時用於強行限制資源訪問的同步機制,即用於在併發控制中保證對互斥要求的滿足。 在DBMS中,可以按照鎖的粒度把資料庫鎖分為行級鎖(INNODB引擎)、表級鎖(MYISAM引擎)和頁級鎖(BDB引擎 )。 行級鎖 行級鎖是Mysql中鎖定粒度最細的一種