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

Docker verwendet Root, um in den Container zu gelangen

Führen Sie zuerst den Docker-Container aus Führen...

HTML-Tabellen-Tag-Tutorial (35): spaltenübergreifendes Attribut COLSPAN

In einer komplexen Tabellenstruktur erstrecken si...

So erstellen Sie einen pptpd-Dienst in Alibaba Cloud Ubuntu 16.04

1. Um ein PPTP-VPN aufzubauen, müssen Sie Port 17...

Natives JS zur Implementierung der Paging-Klicksteuerung

Dies ist eine Interviewfrage, die die Verwendung ...

Verständnis und Lösungen für 1px-Linien in der mobilen Entwicklung

Gründe, warum die 1px-Linie dicker wird Wenn wir ...

Beispieldemonstration der Vuex-Modularisierung und Namespaces

1. Zweck: Machen Sie den Code leichter wartbar un...

Docker richtet Port-Mapping ein, kann aber nicht auf die Lösung zugreifen

#docker ps-Check, alle Ports sind zugeordnet CONT...

Tutorial zur Installation von lamp-php7.0 in einer Centos7.4-Umgebung

Dieser Artikel beschreibt, wie lamp-php7.0 in ein...

So verwenden Sie Docker zum Erstellen eines Redis-Master-Slaves

1. Erstellen Sie eine Docker-Umgebung 1. Erstelle...