1

用于开发我正在使用的 webApp,struts 2 hibernate 3并且我想在更改<s:select/>标记中的值时运行查询并将此查询的结果传递到隐藏的输入中,并且我想在更改选择标记的元素时留在同一页面

我的页面 jsp 像这个例子一样掠夺:

<form  name="evalform" action="saveOrUpdateSousEval"    method="post"  >    
<s:iterator begin="1" end="4" status="status">
        <s:hidden   name="SousEval_Note"   
                value="99" 
                placeholder="entrer  Note"
                      />
        <s:select 
            headerValue="---------------- Select ---------------"
            headerKey="-1" 
            list="SousItemsListGrille"
            listKey="SousItem_ID"   
            listValue="SousItem_Libelle"
            name="sousEvalItem.SousItem_ID"  
            cssClass="selectedId"

            />

</s:iterator>   
</form> 

在这里,我首先获取所选元素的 id:

    <script type="text/javascript">
        $("#idselectdiv .selectedId").change(function () {
        var idd = $(this).val(); 
//each element selected in each select tag  has an id and i want excute query of this id  
        alert(" id selected "+idd);
        $.ajax({
        //somthing here !!
    });
    });
    </script>

在支柱。xmli 定义此操作:

<action name="ponderation" method="getItembyPonderation"        class="action.classAction">
    <result name="success"    >/oki.jsp</result>
 </action>

在我的课堂行动中,我有这个方法:

public Double getItembyPonderation(){
System.out.print("enter getItembyPonderation ok");
Double b = null;
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
List<Double> a=selectponder.selectponderation(Long.parseLong(request.getParameter("SousItem_ID")));
        while (a != null) {
        return  b=a.get(0);
        }
return b;
}

在我的 classDao 中:

public List<Double> selectponderation(Long idsousitem){
    List<Double> valponderation = null;
    try {
    valponderation = session.createQuery("SELECT a.ponderation FROM items a, sousitems b WHERE a.Item_ID = b.Item_ID and b.SousItem_ID="+idsousitem).list();                                                                    ;
} catch (Exception e) {e.printStackTrace();}
return valponderation;
}

在这里我需要一个想法来做到这一点

4

1 回答 1

0
 <script type="text/javascript">
        $("#idselectdiv .selectedId").change(function () {
        var idd = $(this).val(); 
//each element selected in each select tag  has an id and i want excute query of this id  
        alert(" id selected "+idd);
$.ajax({
        url : 'your_action name_where_you_execute_query',
        data:{
            idd:idd
        },
        type : 'GET',
        dataType : 'as_you_want_from_your_action'

    });
 });
    </script>

以上是如何调用动作并将参数传递给该动作的示例。你明白吗?

于 2013-09-17T09:49:39.763 回答