JSP结合JavaScript实现数据联动
来源:互联网 发布:mapreduce算法 编辑:程序博客网 时间:2024/06/08 06:33
1. 简介
JSP结合JavaScript实现数据联动,很多时候我们都要在用户作出选择的时候才会动态列出数据,这时候就必须使用JavaScript来实现数据联动,但是单纯的使用JavaScript而不与数据库连接,则意义不大,这里我演示一个关于省市联动的例子,聊以说明
2. JSP代码
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试数据联动</title>
<script type="text/javascript">
var pid; // 用来保存省份ID
function join() {
for (i=0; i<document.myform.pid.length; i++) {
if (document.myform.pid[i].selected == true) {
pid = document.myform.pid[i].value;
}
}
window.location.href = "index.jsp?pid=" + pid;
}
</script>
</head>
<body>
<sql:setDataSource var="db" user="liky" password="redhat"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=csu" />
<!-- 这里查询省份 -->
<sql:transaction dataSource="${db}">
<sql:query var="qp" sql="select pid,name from province order by pid" />
</sql:transaction>
<!-- 这里根据省份的ID查询城市 -->
<sql:transaction dataSource="${db}">
<sql:query var="qc" sql="select cid, name from city where pid = ? order by cid">
<c:if test="${empty param.pid}">
<sql:param value="1" />
</c:if>
<c:if test="${not empty param.pid}">
<sql:param value="${param.pid}"/>
</c:if>
</sql:query>
</sql:transaction>
<center>
<form name="myform" action="ok.jsp" method="get">
<table border="1">
<tr>
<td>省份</td>
<td><select name="pid" onChange="join()">
<c:forEach items="${qp.rows}"var="province">
<c:if test="${not empty province}">
<c:if test="${param.pid == province.pid}">
<option value="${province.pid}"selected = "selected">
${province.name}
</option>
</c:if>
<c:if test="${param.pid != province.pid}">
<option value="${province.pid}">
${province.name}
</option>
</c:if>
</c:if>
<c:if test="${empty province or province.pid < 1}">
<option value="0">
请选择
</option>
</c:if>
</c:forEach>
</select></td>
</tr>
<tr>
<td>城市</td>
<td><select name="cid">
<c:forEach items="${qc.rows}"var="city">
<option value="${city.cid}">
${city.name}
</option>
</c:forEach>
</select></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
2. 数据库脚本
use csu
go
if exists(select 1 from sysobjects where name='city')
drop table city
if exists(select 1 from sysobjects where name='province')
drop table province
create table province
(
pid int identity(1,1) primary key,
name varchar(20),
)
go
create table city
(
cid int identity(1,1) primary key,
pid int,
name varchar(20),
)
go
insert into province (name) values ('湖南')
insert into province (name) values ('浙江')
insert into province (name) values ('广东')
go
insert into city (pid, name) values (1,'长沙')
insert into city (pid, name) values (1,'岳阳')
insert into city (pid, name) values (1,'张家界')
insert into city (pid, name) values (2,'杭州')
insert into city (pid, name) values (2,'温州')
insert into city (pid, name) values (2,'金华')
insert into city (pid, name) values (3,'广州')
insert into city (pid, name) values (3,'深圳')
insert into city (pid, name) values (3,'东莞')
go
- JSP结合JavaScript实现数据联动
- 在一个jsp页面实现二级下拉框联动,实时读取数据库数据(用javascript实现)
- jsp+javascript实现动态下拉二级联动(select+option)
- ScrollView结合LiView实现联动
- jsp实现表格联动
- JSP+JavaScript 二级联动 静态
- javascript实现联动菜单
- javaScript实现表单联动
- JavaScript实现三级联动
- JavaScript实现联动选择
- JavaScript 实现二级联动
- JavaScript实现联动效果
- Javascript实现三级联动
- JavaScript实现二级联动
- JavaScript实现二级联动
- Javascript实现省市联动
- 用asp+javascript实现动态数据联动,不刷新
- JavaScript之AJAX实现二级联动菜单(jsp+js+servlet+xml)
- php数据库操作类---mysql
- 最强悍的美国逻辑,精英必读!
- 获取某表字段的所有信息
- 耶鲁5年神奇研究成果:一张图分出你是用左脑还是右脑!
- Freemarker quercus jsp 比较
- JSP结合JavaScript实现数据联动
- chnbokee ?? nbstat命令
- 浅析Struts 体系结构与工作原理
- LDAP协议
- 什么是 Portal
- SHFileOperation函数静悄悄地删除指定目录
- astercc使用心得
- Copy 命令详解
- fedora system-config-...