Jquery调用Ajax实现联动使用json

在很多时候我们都会使用到联动。jquery.js是一个不错的js框架。其ajax也挺不错。下面将实现一个js联动:选择公司出来受益人。根据公司不同受益人不同。

前提是:你用引入jquery.js

<script language="javascript" src="../js/jquery-1.4.4.min.js"></script>

页面JS:

复制代码
// 更换公司
function changeCompany(company_name){
   var id_beneficiaryObj = $("#id_beneficiary");  
   var date_belong = $("#date_belong").val();
   id_beneficiaryObj.empty();        // 清空  
   id_beneficiaryObj.prepend("<option value=''>请选择</option>"); 
   
   $.ajax({  
       type: "POST",  
       dataType: "json",  
       url: "beneficiary_um_action.jsp",  
       data: { tabid: "selectCompanyUser",
                  company_name: company_name, 
                  date_belong: date_belong
                },  
       success: function (data) {   
           $.each(data, function (i, n) {  
                   // 追加项
               id_beneficiaryObj.append("<option value=" + n.id_beneficiary + ">" + n.beneficiary_name + "</option>");  
           });  
       }  
   });  
}
复制代码

页面html:

复制代码
  <tr>
      <td width="20%" align="center">公司名称</td>
    <td >
      <select name = "company_name" id="company_name" onchange="changeCompany(this.value);">
          <option value="">合计</option>
          <c:if test="${not empty dateBelongList }">
              <c:forEach var="company" items="${companyList }">
                 <option value="<c:out value='${company.company_name }' />"><c:out value='${company.company_name_name }' /></option>
             </c:forEach>
          </c:if>
      </select>
    </td>
    <td width="20%" align="center">受益人</td>
    <td >
      <select name="id_beneficiary" id="id_beneficiary">
          <option value="">请选择</option>
      </select>
    </td>
  </tr>
复制代码

 

请求联调数据的java类 beneficiary_um_action.jsp:

复制代码
if ("selectCompanyUser".equals(tabid)) 
{
    if (!StringUtil.isEmpty(company_name))
    {

        String id_um = (String)session.getAttribute(CommonConstants.USER_ID);
        String jsonString = beneficiaryUmDAO.getBeneficiaryInfoByCompanyName(company_name, id_um);
        response.getWriter().write(jsonString);
    }
    return;
}
复制代码

beneficiaryUmDAO:

复制代码
/**查询_根据公司名称所属年月查询公司下受益人信息
     * 
     * @param company_name 公司名称
     * @param date_belong 所属年月
     * @return
     * @throws ServerException
     */
    public String getBeneficiaryInfoByCompanyName(String company_name, String id_um) throws ServerException {
        try {
            if (StringUtil.isEmpty(company_name))
            {
                return null;
            }
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("company_name", company_name);
            param.put("id_um", id_um);
            List<BeneficiaryInfo> beneficiaryInfoList = (List<BeneficiaryInfo>) sqlMapper.queryForList("select_BeneficiaryInfo_select", param);
            JSONArray jsonArray = new JSONArray();
            for (BeneficiaryInfo info : beneficiaryInfoList)
            {
                JSONObject json = new JSONObject();
                json.put("id_beneficiary", info.getId_beneficiary());
                json.put("beneficiary_name", info.getBeneficiary_name());
                jsonArray.put(json);
            }
            
            return jsonArray.toString();
        } catch (SQLException e) {
            throw new ServerException(e);
        }
    }
复制代码

 

 

就这样完成了。

 

 

posted on   陈惟鲜的博客  阅读(200)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示