AJAX 做3级连动

首先我门看ACTION代码

这里暂时只看show

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.baidu.struts.action;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.json.JSONArray;
import org.json.JSONObject;

import com.baidu.dao.DAO;
import com.baidu.struts.form.TestForm;

/**
* MyEclipse Struts
* Creation date: 04-21-2008
*
* XDoclet definition:
* @struts.action path="/test" name="testForm" input="/form/test.jsp" scope="request" validate="true"
*/
public class TestAction extends DispatchAction {


public ActionForward show(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
DAO dao=new DAO();
request.setAttribute("gs",dao.findByGs());
// request.setAttribute("bm", dao.findByBm());
// request.setAttribute("emp", dao.findByEmp());
return mapping.findForward("index");
}


public ActionForward ajax(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
response.setHeader("Charset","UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
String selectValue = request.getParameter("selectValue");
Integer id=Integer.parseInt(selectValue);
DAO dao=new DAO();
List list=dao.findByBm(id);
JSONArray jsonArray = new JSONArray();
for(int i = 0; i < list.size(); i++ ){
HashMap map = (HashMap)list.get(i);
JSONObject jsonObject = new JSONObject(map);
jsonArray.add(jsonObject);
}
try {
response.getWriter().print(jsonArray);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
}

return null;
}





public ActionForward ajax1(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
response.setHeader("Charset","UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
String selectValue = request.getParameter("selectValue");
Integer id=Integer.parseInt(selectValue);
System.out.println(id);
DAO dao=new DAO();
List list=dao.findByEmp(id);
JSONArray jsonArray = new JSONArray();
for(int i = 0; i < list.size(); i++ ){
HashMap map = (HashMap)list.get(i);
JSONObject jsonObject = new JSONObject(map);
jsonArray.add(jsonObject);
}
try {
response.getWriter().print(jsonArray);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
}

return null;
}



public ActionForward show2(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestForm testForm = (TestForm) form;
return null;
}

}

OK 我门在看来JSP

<%@ page language="java" pageEncoding="gbk"%>
<jsp:directive.page import="java.util.List"/>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>

<script type="text/javascript"
src="<%=request.getContextPath()%>/prototype.js"></script>
<script language="javascript">

function sendRequest(selectValue){
var pars = 'selectValue=' + selectValue;
myAjax = new Ajax.Request(
'<%=request.getContextPath()%>/test.do?method=ajax',
{method: 'get', requestHeaders:["If-Modified-Since","0"], parameters: pars, onComplete: showResponse }
);
}


function showResponse(response) {
var json = eval('('+response.responseText+')');
//alert(json)
var selectObj = document.getElementById("dealersId");
selectObj.options.length = 1;
for(var i=0; i<json.length; i++){
selectObj[i+1] = new Option(json[i].name,json[i].id);
}
}


function sendRequest1(selectValue){
var pars = 'selectValue=' + selectValue;
myAjax = new Ajax.Request(
'<%=request.getContextPath()%>/test.do?method=ajax1',
{method: 'get', requestHeaders:["If-Modified-Since","0"], parameters: pars, onComplete: showResponse1 }
);
}


function showResponse1(response) {
var json = eval('('+response.responseText+')');
//alert(json)
var selectObj = document.getElementById("dealersId1");
selectObj.options.length = 1;
for(var i=0; i<json.length; i++){
selectObj[i+1] = new Option(json[i].name,json[i].id);
}
}





</script>
<BODY>
<html:form action="/test.do?method=show">
<html:select property="id" onchange="javascript:sendRequest(this.value);act='';">
<html:option value="">请选择</html:option>
<html:options collection="gs" property="id" labelProperty="name"/>
</html:select>
<br>
<html:select property="pid" styleId="dealersId" onchange="javascript:sendRequest1(this.value);act='';">
<html:option value="">网点名称</html:option>
</html:select>
</br>
<html:select property="pid1" styleId="dealersId1">
<html:option value="">网点名称</html:option>
</html:select>
</html:form>




</BODY>



JS是工具类太长了帖不上来
大个包传上来把 需要的朋友可以下
prototype.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值