JS + AJAX realisiert die Verknüpfung von Dropdown-Listen für Provinzen, Städte und Bezirke

JS + AJAX realisiert die Verknüpfung von Dropdown-Listen für Provinzen, Städte und Bezirke

In diesem Artikel wird der spezifische Code von JS + AJAX zur Realisierung der Verknüpfung von Dropdown-Listen für Provinzen, Städte und Bezirke zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Das Wirkungsdiagramm ist wie folgt, die in der Datenbank gespeicherten Daten werden extrahiert.

Implementierung der Front-End-JSP-Seite

<div Klasse="info">
<div class="title">Firmenadresse:</div>
<div Klasse="Wert">
<Feldsatz deaktiviert>
<select id="provinceSelect" class="form-control" data-val="${factoryCenterInfo.province}" onchange="provinceChange()">
<c:forEach items="${factoryPlace.provinceList}" var="Provinz" varStatus="Status">
<option value="${province.key}" <span style="color:#3333ff;"><c:if test="${factoryCenterInfo.province == province.key}">ausgewählt</c:if></span><span style="color:#3366ff;">></span>${province.value}</option>
</c:fürJeden>
</Auswählen>
</Feldsatz>
<Feldsatz deaktiviert>
<select id="Stadtauswahl" class="form-control" data-val="${factoryCenterInfo.city}" onchange="Stadtänderung()">
<c:forEach items="${factoryPlace.cityList}" var="Stadt" varStatus="status">
<option value="${city.key}" <span style="color:#3333ff;"><c:if test="${factoryCenterInfo.city == city.key}">ausgewählt</c:if></span>>${city.value}</option>
</c:fürJeden>
</Auswählen>
</Feldsatz>
<Feldsatz deaktiviert>
<select id="Bereichsauswahl" class="form-control" data-val="${factoryCenterInfo.area}">
<c:forEach items="${factoryPlace.areaList}" var="Bereich" varStatus="status">
<option value="${area.key}" <span style="color:#3333ff;"><c:if test="${factoryCenterInfo.area == area.key}">ausgewählt</c:if></span>>${area.value}</option>
</c:fürJeden>
</Auswählen>
</Feldsatz>
</div>
</div>

JS-Implementierungscode

Wirkung: Mehrere Ajax-Anfragen umsetzen und Daten verknüpft durchsuchen

Funktion Provinzänderung(){
 
 var ProvinzId = $("#provinceSelect").val();
 $("#citySelect").leer();
 $("#areaSelect").empty();
 
 wenn(Provinz-ID != null && Provinz-ID != ""){
  
  $.ajax({
   Typ: "POST",
   URL: "<span style="color:#3333ff;">Fabrik/getChangeList</span>",
   Datentyp: „json“,
   Daten: {
    "parentId":Provinz-ID,
    "placeKbn":"C"
   },
   Cache:false,
   Erfolg: Funktion (Daten) {
    if("Erfolg" == Daten.Ergebnis){
     wenn(data.cityList != null && data.cityList.length > 0){
      für(var i = 0;i < data.cityList.length;i++){
       var Stadt = Daten.Stadtliste[i];
       var Schlüssel = (Stadt.Schlüssel == null? "":Stadt.Schlüssel);
       var Wert = (Stadt.Wert == null? "":Stadt.Wert);
       $("#citySelect").append("<option value = \"" + key + "\">"+ value + "</option>");
      }
     }anders{
      $("#citySelect").append("<option> </option>");
     }
     $("#areaSelect").append("<option> </option>");
    }
    if("Fehler" == Daten.Ergebnis){
     $("#citySelect").append("<option> </option>");
     $("#areaSelect").append("<option> </option>");
    }
   },
   Fehler:Funktion(XMLHttpRequest, textStatus, errorThrown){
       $("#errorContent").html("Systemstörung, bitte kontaktieren Sie den Administrator");
      }
   
  });
 }anders{
  $("#citySelect").append("<option> </option>");
  $("#areaSelect").append("<option> </option>");
 }
}
 
Funktion Stadtänderung(){
 
 var cityId = $("#citySelect").val();
 
 $("#areaSelect").empty();
 
 wenn(cityId != null && cityId != ""){
  
  $.ajax({
   Typ: "POST",
   URL: "<span style="color:#3333ff;">Fabrik/getChangeList</span>",
   Datentyp: „json“,
   Daten: {
    "Eltern-ID":Stadt-ID,
    "placeKbn": "Q"
   },
   Cache:false,
   Erfolg: Funktion (Daten) {
    if("Erfolg" == Daten.Ergebnis){
     wenn(data.areaList != null && data.areaList.length > 0){
      für(var i = 0;i < data.areaList.length;i++){
       var Bereich = Daten.Bereichsliste[i];
       var Schlüssel = (Bereich.Schlüssel == null? "":Bereich.Schlüssel);
       var Wert = (Bereich.Wert == null? "":Bereich.Wert);
       $("#areaSelect").append("<option value = \"" + key + "\">"+ value + "</option>");
      }
     }anders{
      $("#areaSelect").append("<option> </option>");
     }
    }
    wenn("Fehler" == Daten.Ergebnis){
     $("#areaSelect").append("<option> </option>");
    }
   },
   Fehler:Funktion(XMLHttpRequest, textStatus, errorThrown){
       $("#errorContent").html("Systemstörung, bitte kontaktieren Sie den Administrator");
      }
   
  });
 }anders{
  $("#citySelect").append("<option> </option>");
  $("#areaSelect").append("<option> </option>");
 }
}

Implementierungscode des Backend-Controllers

@RequestMapping("<span style="color:#3333ff;">getChangeList</span>")
 @AntwortBody
 öffentliches Objekt getChangeList(String parentId,String placeKbn){
  logBefore(logger, "Fabrik/getChangeList");
  Map<String,Objekt> returnMap = neue HashMap<String,Objekt>();
  
  wenn (FactoryConsts.CHAR_KBN_CITY.equals(placeKbn)) {
   wenn(getPlacelist( parentId, placeKbn) != null und getPlacelist( parentId, placeKbn).size() > FactoryConsts.INT_0){
    returnMap.put("Ergebnis", "Erfolg");
    returnMap.put("Stadtliste", getPlacelist(übergeordneteID, Ortsverzeichnis));
   }anders{
    returnMap.put("Fehler", "Städteliste ist leer");
    returnMap.put("Stadtliste", "");
   }
   
  }sonst wenn(FactoryConsts.CHAR_KBN_AREA.equals(placeKbn)){
   wenn(getPlacelist( parentId, placeKbn) != null und getPlacelist( parentId, placeKbn).size() > FactoryConsts.INT_0){
    returnMap.put("Ergebnis", "Erfolg");
    returnMap.put("areaList", getPlacelist(parentId, placeKbn));
   }anders{
    returnMap.put("Fehler", "Bereichsliste ist leer");
    returnMap.put("Bereichsliste", "");
   }
  }
  Rückkehr ReturnMap;
 }
 /**
  *Dropdown-Liste „Provinz“* 
  * @zurückkehren
  */
 private Liste<PlaceOption> getPlacelist(String parentId,String kbn){
  //Dropdown-Liste List<PlaceOption> placeList = new ArrayList<PlaceOption>();
  placeList.add(neue PlaceOption());
  QueryPlaceInfoParam queryParam = neuer QueryPlaceInfoParam();
  queryParam.setPlaceKbn(kbn);
  wenn(!StringUtils.isEmpty(parentId)){
   queryParam.setPlaceId(Integer.valueOf(parentId));
  }
  FactoryPlaceNameResult placeResult = placeInfoService.queryPlaceInfo(queryParam);
  
  wenn(placeResult != null und "0".equals(placeResult.getResult()) 
    && placeResult.getPlaceInfo() != null 
    && placeResult.getPlaceInfo().size() > FactoryConsts.INT_0){
   Liste<OrtsinfoFa> Ortsinfo = neue ArrayList<OrtsinfoFa>();
   placeInfo = placeResult.getPlaceInfo();
   für(FactoryPlaceInfo info : placeInfo){
    PlaceOption-Option = neue PlaceOption();
    option.setKey(String.valueOf(info.getPlaceId()));
    option.setValue(info.getPlaceName());
    placeList.add(Option);
   }
  }
  
  gebe Ortsliste zurück;
 }

Wenn Sie gleichzeitig auf das Menü klicken, führt der Controller den Startbildschirm aus

/**
  * Grundlegende Informationen zur Initialisierungsmethode * 
  * @param Anfrage
  * @zurückkehren
  */
 @RequestMapping("toFactoryBaseInfo")
 öffentliche ModelAndView toFactoryBaseInfo (HttpServletRequest-Anfrage) {
  logBefore(logger, "Fabrik/toFactoryBaseInfo");
  Modell und Ansicht mv = neues Modell und Ansicht();
  //Unternehmenstyp Map<String,String> factoryTypeMap = new TreeMap<String,String>();
  factoryTypeMap.putAll(FactoryConsts.FACTORY_TYPE_MAP);
  mv.addObject("factoryTypeMap", factoryTypeMap);
  
  FactoryFactoryInfo factoryInfo = (FactoryFactoryInfo) request.getSession().getAttribute(Const.SESSION_FACTORY);
 
  //Unternehmensinformationen abrufen FactoryFactoryInfoParam infoParam = new FactoryFactoryInfoParam();
             FactoryFactoryInfoResult infoResult = neues FactoryFactoryInfoResult();
  infoParam.setFactoryId(String.valueOf(factoryInfo.getFactoryId()));
  infoParam.setDifferent(FactoryConsts.STRING_WEB_ONE); //Web
  infoResult = factoryService.factoryInfo(infoParam);
 
  FactoryPlace factoryPlace = neuer FactoryPlace();
  
  <span style="color:#3333ff;">// Dropdown-Liste „Provinz“ factoryPlace.setProvinceList(getPlacelist("0",FactoryConsts.CHAR_KBN_PROVINCE));
  // Dropdown-Liste „Stadt“ factoryPlace.setCityList(getPlacelist(infoResult.getFactoryInfoEx().getProvince(),FactoryConsts.CHAR_KBN_CITY));
  // Dropdown-Liste für Bereiche factoryPlace.setAreaList(getPlacelist(infoResult.getFactoryInfoEx().getCity(),FactoryConsts.CHAR_KBN_AREA));</span>
  
  <span style="color:#cc66cc;">mv.addObject("factoryPlace", factoryPlace);//Liste der Adressen</span>
  <span style="color:#6633ff;">mv.addObject("factoryCenterInfo", infoResult.getFactoryInfoEx());//Grundlegende Informationen der Unternehmenstabelle</span>
  mv.setViewName("Fabrik/FabrikInformationCenter/saveFactoryBaseInfo");
  Rückkehr mv;
 }

Es können mehrstufige Verknüpfungseffekte erzielt werden.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Realisierung von Provinz- und Gemeindeverknüpfungseffekten auf Basis von JavaScript
  • JavaScript realisiert den Verknüpfungseffekt zwischen Provinzen und Städten
  • JavaScript zur Lösung des Provinz- und Gemeindeverknüpfungsfehlers
  • Code-Sharing basierend auf JS, um einen provinziellen und kommunalen Verknüpfungseffekt zu erzielen
  • js Provinz- und Kommunalverknüpfungseffekt vollständiger Beispielcode
  • JSON + HTML realisiert den Verknüpfungsauswahleffekt von Land, Provinz und Stadt
  • Provinz-Stadt-Verknüpfungsmenü, implementiert durch ein zweidimensionales JavaScript-Array
  • JavaScript-Implementierungscode für Provinz- und Kommunalverknüpfungen
  • Ein einfaches Beispiel für die Verwendung von js, um den Verknüpfungseffekt zwischen Provinzen und Städten zu erzielen
  • Javascript 2009 neueste Version der Provinz- und Gemeindeverknüpfung
  • js implementiert die Methode zum Auswählen eines Wertes in der Dropdown-Liste (3 Methoden)
  • So füllen Sie den Inhalt in die Dropdown-Liste, nachdem jQuery Ajax verwendet hat, um JSON-Daten aus dem Hintergrund abzurufen
  • jquery+json universelle dreistufige Verknüpfungs-Dropdown-Liste

<<:  So konfigurieren Sie eine VMware-Umgebung mit mehreren Knoten

>>:  Win10 Installation von MySQL 5.7 MSI-Version des Tutorials mit Bildern und Text

Artikel empfehlen

Beispiele für 4 Methoden zum Einfügen großer Datenmengen in MySQL

Vorwort Dieser Artikel stellt hauptsächlich 4 Met...

Chinesische Lösung und Beispielcode für die MySQL-Volltextsuche

MySQL-Volltextsuche, chinesische Lösung Kürzlich ...

5 Dinge, die beim Schreiben von React-Komponenten mit Hooks zu beachten sind

Inhaltsverzeichnis 01. Verwenden Sie useState, we...

Detaillierte Erklärung der grundlegenden HTML-Tags und -Strukturen

1. HTML-Übersicht 1.HTML: Hypertext Markup Langua...

Methode zur Erstellung von Vue-Scaffolding-Lernprojekten

1. Was ist Scaffolding? 1. Vue-CLI Vue CLI ist ei...

Überlegungen zum Rasterdesign von Webseiten

<br />Ursprüngliche Adresse: http://andymao....

11 Gründe, warum Bootstrap so beliebt ist

Vorwort Bootstrap, das beliebteste Front-End-Entw...

Vue implementiert eine einfache Produktion von Zählern

In diesem Artikelbeispiel wird der einfache Imple...

js, um einen einfachen Karusselleffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Mehrere Möglichkeiten zum Ausblenden von HTML-Elementen

1. CSS verwenden Code kopieren Der Code lautet wie...

5 einfache Möglichkeiten, Speicherplatz auf Ubuntu freizugeben

Vorwort Die meisten Benutzer führen diesen Vorgan...