2011-03-28 52 views
2

編輯是否有其他方法可以讓我填第二下拉爲每1日下拉選擇jQuery的阿賈克斯。如果有人有任何鏈接,請發佈任何鏈接。填充基於使用jQuery 1下拉選擇第二下拉菜單,AJAX,Struts2的


我已根據第一個下拉選擇更新第二個下拉菜單。我正在使用jQuery和Struts2。我想更新使用jQuery阿賈克斯第二個下拉。有人可以幫助我的代碼。我試着用下面的方法,但不知何故,我無法傳遞參數給Action類。先謝謝你。

http://www.joe-stevens.com/2010/02/23/populate-a-select-dropdown-list-using-jquery-and-ajax/

編輯:Climbage說,我與代碼不管我有更新。

caseSelect是第一下拉,termSelect是第二,casetermcodes是行動。 selCaseDropDown隱藏變量我想取第一個下拉列表中的Action類在那裏我有這個變量的getter和setter方法所選值。我首先堅持將選定的值發送到操作類。我沒有做過任何進一步的這一點。

$("#caseSelect").change(
     function(){ 
     $("#result").html('Retrieving ...'); 
     var selCase = $("#caseSelect").val(); 
     $.ajax({ 
      type: "POST", 
      url: "/dwdst/casetermcodes", 
      data: {selCaseDropDown: selCase}, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
       $("#termSelect").get(0).options.length = 0; 
       $("#termSelect").get(0).options[0] = new Option("Term Codes", "-1"); 

       $.each(msg.d, function(index, item) { 
        $("#termSelect").get(0).options[$("#termSelect").get(0).options.length] = new Option(item.value, item.key); 
       }); 
      }, 
      error: function() { 
       alert("Failed to load Term Codes"); 
       $("#result").hide(); 
      } 
     }); 
    }); 

Action類:

public String execute(){ 
    logger.info("selected value >>"+selCaseDropDown); 
    return SUCCESS; 
} 

public String getSelCaseDropDown(){ 
    return selCaseDropDown; 
} 

public void setSelCaseDropDown(String selCaseDropDown){ 
    this.selCaseDropDown = selCaseDropDown; 
} 
+2

你能後你有什麼了嗎? – climbage 2011-03-28 20:23:12

+0

我剛剛更新了可用的代碼。 – changeme 2011-03-28 21:07:51

+0

任何人的幫助,至少從如何讓選定的值進入Struts動作開始。這個「數據:{selCaseDropDown:selCase}」,「 – changeme 2011-03-29 20:10:21

回答

3

我已經創建另一個短JSP這只是下拉(第二個下拉)爲html代碼,並在我的行動的結果將是這短短的頁面來解決這一點。

當第一頁是用下面的代碼並覆蓋下已顯示在JSP與該第二短下拉只有JSP的下拉菜單中選擇調用操作。

getSecondSelect是動作我打電話其中有導致作爲短JSP。

tercodeResult是用新的下拉式替換的div標籤。

selId是從第一個下拉選擇的值。

 $.ajax({ 
      type: "GET", 
      url: "getSecondSelect", 
      data:"selId=" + selCase, 
      dataType: "text/html;charset=utf-8", 
      success: function(msg) { 
       $("#tercodeResult").html(msg); 
      } 
     }); 
1

試試這個,會幫助你在Struts中2.0.14與jsonplugin-0.32.jar。

的struts.xml:

<struts> 
    <package name="example" extends="json-default"> 
     <action name="HelloWorld" class="example.HelloWorld" > 
      <result type="json" /> 
     </action> 
       <action name="HelloWorld1" class="example.HelloWorld" > 
      <result name="success" >example/HelloWorld.jsp</result> 
     </action> 
    </package> 
</struts> 

動作類Helloworld.java:

package prabhakar; 

import glb.DB; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Map; 

/** 
* Prabhakar 
*/ 
public class HelloWorld { 

    private List<StateMaster> stateList = new ArrayList<StateMaster>(); 
    private List<RegnMaster> regnList = new ArrayList<StateMaster>(); 
    private Integer stateId; 

    public Integer getStateId() { 
     return this.stateId; 
    } 

    public void setStateId(Integer stateId) { 
     this.stateId = stateId; 
    } 

    public List<StateMaster> getStateList() { 
     return stateList; 
    } 

    public void setStateList(List<StateMaster> stateList) { 
     this.stateList = stateList; 
    } 

    public void setRegnList(List<RegnMaster> regnList) { 
     this.regnList = regnList; 
    } 

    public List<RegnMaster> getRegnList() { 
     return regnList; 
    } 

    public String execute() throws Exception { 

     stateList = DB.getStateData()// 
      if (stateId != null) { 
      regnList = DB.getRegnByStateId(stateId); 
     } 

     //setMessage(getText(MESSAGE)); 
     return "success"; 
    } 
    /** 
    * Provide default valuie for Message property. 
    */ 
} 

可以直接調用HelloWorld.action查看JSON數據,否則你可以綁定JSON數據到下面的表單元素。

JSP頁面的helloWorld.jsp:

/* 
    Prabhakar 
    */ 

<%@ page contentType="text/html; charset=UTF-8" %>  
<%@ taglib prefix="s" uri="/struts-tags" %> 

<script> 
    <%@include file="../js/jquery-1.7.1.min.js"%> 
</script> 

<html> 

    <!-- JavaScript Plugins --> 
    <script> 
     function getLoad(){ 

      var stateId = $('#state').val(); 

      $.getJSON('HelloWorld.action', {'stateId': stateId}, 
      function(data) { 

       var divisionList = (data.regnList); 

       var options = $("#regn"); 
       options.find('option') 
       .remove() 
       .end(); 
       options.append($("<option />").val("-1").text("--Select--")); 
       $.each(divisionList, function() { 

        options.append($("<option />").val(this.regnId).text(this.regnName)); 
       }); 
      } 
     );} 
    </script> 

    <!-- jQuery-UI Dependent Scripts --> 

    <body> 
     State List <s:select name="stateId" list="stateList" id="state" listKey="stateId" onchange="getLoad()" listValue="stateName" headerKey="0" headerValue="--select--" /> 
    Regn List <s:select name="regnId" list="regnList" listKey="regnId" id="regn" listValue="regnName" headerKey="0" headerValue="--select--" /> 
</body> 
</html> 
相關問題