首先需要把以下JS粘到 jsp页面的javascript标签中:
<script type="text/javascript">
var xmlHttp;
var xmlDOM=new ActiveXObject("Microsoft.XMLDOM");
xmlDOM.async=false;//是否异步更新
//创建XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
//如果用户使用IE,就返回XMLHTTP的ActiveX对象
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
//否则返回一个XMLHttpRequest对象
xmlHttp = new XMLHttpRequest();
}
}
function getregion(){
createXMLHttpRequest();
try{//document.form1.d_device_id
//post方式传递参数
xmlHttp.onreadystatechange = handleStateGetRetion;
var d_device_id=document.getElementById("d_device_id").value;
var post="d_device_id="+d_device_id;
//alert(d_device_id);
xmlHttp.open ('post',"<%=path%>/getregion.do",true);
xmlHttp.setrequestheader("cache-control","no-cache");
xmlHttp.setrequestheader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send (post);//注意:POST方式,使用这个来发送内容?
}catch(exception){
alert("您要访问的资源不存在!");
}
}
function handleStateGetRetion(){
if(xmlHttp.readyState == 4){
if (xmlHttp.status == 200 || xmlHttp.status == 0){
// 取得XML的DOM对象
var res=xmlHttp.responseXML.getElementsByTagName("res")
//alert(res);
var list = document.all.d_ifindex;
list.options.length=0;
list.add(new Option("---请选择---",""));
for(var i=0;i<res.length;i++){
list.add(new Option(res[i].firstChild.data,res[i].firstChild.data));
}
}
}
}
</script>
下面是HTML代码(本人只选取其中2个下拉菜单拿过来做演示例子):
<tr bgcolor="#E3F3FD">
<td align="right">主动标识:</td>
<td><label>
<select id="d_device_id" name="d_device_id" class="select" onChange="getregion();">
<option value="">--请选择--</option>
<%=(String)request.getAttribute("str") %>
这里是第一个菜单中(主动菜单)的选项,在这里我就不给大家把这里列出来了.可以查询出一个带“<option>”标签的String字符串,到这得到便可
</select>
</label>
<label></label></td>
</tr>
<tr bgcolor="#E3F3FD">
<td align="right">目标联动标识: </td>
<td> <label>
<select id="d_ifindex" name="d_ifindex" class="select">
</select>
</label>
</td>
</tr>
再下边就是后台的struts类:
package com.snmp.action;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.snmp.util.DB;
/**
*
* 联动下拉菜单
* @author 徐彬
* 2009-06-25
*
*/
public class GetRegionAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
response.setContentType("text/xml; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
List cities = new ArrayList();
PrintWriter out = response.getWriter();
String d_device_id = request.getParameter("d_device_id");
try {
conn = DB.getConnection();
stmt = conn.createStatement();
String sql = "select device_id, ifindex, port_desc, speed from snmp_port where device_id='"+d_device_id+"'";
//String strtwo=DB.getSelectOption(sql, "");
rs=stmt.executeQuery(sql);
while (rs.next())
{
cities.add(rs.getString(2));
}
DB.releaseCursor(conn, stmt, rs);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.println("<response>");
for(int i=0;i<cities.size();i++)
{
out.println("<res>" + cities.get(i).toString() + "</res>");
}
out.println("</response>");
out.close();
return null;
}
}
分享到:
相关推荐
DWR+Struts+Hibernate+Spring 做的三级联动菜单,动态的,带测试文件,把关系包复制到WebRoot下lib就可以运行!
struts2 jquery json ajax 三级联动菜单 可直接部署使用 需添加数据库查询代码
struts2+jsp+json+javascript实现的三级下拉菜单,没有service和dao层,数据是虚拟的。需要的欢迎下载。项目直接导入myeclipse就可以使用。访问路径localhost:8080/ajax_day02_hw/proviencecityarea.jsp
json实现省市县三级联动下拉框,从数据库读取数据到页面显示!
选择一个商品大类,然后为商品小类填充数据,选择小类后则商品品牌列表会自动填充数据 项目是由Struts2+spring2+hibernate3构架 Struts2自带的只有二级连动下拉菜单,而且效率较低
选择一个商品大类,然后为商品小类填充数据,选择小类后则商品品牌列表会自动填充数据 项目是由Struts2+spring2+hibernate3构架 Struts2自带的只有二级连动下拉菜单,而且效率较低!
这个Ajax联动殊不知和这些框架有什么关系,一个小Demo干嘛整得那么大。 今天我做了一个dwr+jsp做的例子。 web.xml: 代码如下: <?xml version=”1.0″ encoding=”UTF-8″?> <web-app version=”2.4″ xmlns...
利用struts2和Ajax实现json对象的传输,然后实现菜单的二级联动 下面是我的 js文件原码: 代码如下: var mail={ //初始化 init:{ //初始化数据 initdata:{ did:”, ttitle:”, sendpassword:”, description:” }, /...
sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API....