如果纯是用jsp做,好像不可能。jsp能调用自身么?除非你数据库里面的数据都固定了,像上面用javacript写的那样,不再向库中添加数据了。
解决方案 »
- struts2 在页面自动跳转到一个action
- 写了个过滤器 结果所有的网页都打不开了
- 现在有什么比较实用的javaweb框架
- 一个页面要放两个三级联动下拉框
- struts2中2个iterator叠代的问题
- struts中LIST内容丢失的问题,请指教哈
- 用arraylist返回来的值为[某某],怎么出去[]符号呢?
- 熊猫烧香修改我的网页,导致网站一时不敢打开
- 如何使用grd,gis文件中的内容
- 关于servlet 的编译问题,怎样设置classpth,把那些java servlet类包含到classpath?而且无法调用servlet!谢谢!
- 怎么在公司自己学习?
- 如何运行servlets 程序 ?
第一个下拉菜单OnChange中使IFRAME调用另一页面进行数据库处理
并生成第二个下拉框的选项
下拉框联动有两个java类,两个jsp页面,和一个js组成。MultiSelect.java
该类用于生成实现联动需要的Array数组package select;import java.util.*;
import java.sql.*;
import java.io.*;public class MultiSelect { /**
*产生JavaScript中用于联动的array代码
*以省市为例
*一般为了javascript程序的方便,建议输出格式为:
*subcat1[subcat1.length] = new Array("江阴","12.10","12");
*其中"江阴"的值为"12.10","12"对应江苏省,越大的范围的值越往后
*subcat1[subcat1.length] = new Array("常州","12.11","12");
**/
public static String getArray(String name, String sql) throws java.sql.SQLException {
Connection conn=null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test", "test", "test");
} catch (java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: " + e.getMessage());
}
Statement stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
StringBuffer sb = new StringBuffer(); while(rs.next()){
sb.append(name + "[" + name + ".length] = new Array(" + getString(rs.getString(0),rs.getString(1),rs.getString(2)) + ");\n");
} return sb.toString(); } private static String getString(String s1,String s2,String s3) { String temp = "\"" + s1 + "\",\""+s2+"\",\""+s3+"\"";
return temp;
}
}
--------------------------------------------------------------------------------
SelectJS 该类主要是用来生成sql语句。
package select;public class SelectJS { /**
* 写出sql,调用
* @param name 数组名称
* @return
* @throws java.sql.SQLException
*/
public static String getProducts(String name) throws java.sql.SQLException {
return MultiSelect.getArray(name,
"select describe,code,fcode from testone "
);
}}---------------------------------------------------------------------------------
citys.jsp主要是用来得到Array数组<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="select.*"%>
var citys = new Array();
<%=SelectJs.getDealerCity("citys")%>-----------------------------------------------------------------------------------
select.js 主要是用来显示下拉框中的数据function clearselect(Aa){ clearList(Aa); Aa.options[Aa.length] = new Option("没有回答", "");}
//use "" to clear all:(值的索引为1)//Aa为被联动的select,//locationid为主联动值,//arr为用于生成的Array,//index1为Array中用于比较主联动值的索引function changelocation1(Aa,locationid,arr,index1){
clearselect(Aa);
var i;
for (i=0;i < arr.length; i++){
if (arr[i][index1] == locationid ){
Aa.options[Aa.length] = new Option(arr[i][0], arr[i][1]);
}
}
}
//from chinaquestfunction clearList(ctrl){ if (document.all) { for(;ctrl.options.length>0;) ctrl.options.remove(ctrl.options.length-1); }else{ for(;ctrl.options.length>0;) ctrl.options[ctrl.options.length-1] = null; }
}-------------------------------------------------------------------------------------
selecttest.jsp 进行页面使用<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="JavaScript" src="citys.jsp"></script>
<script language="JavaScript" src="select.js"></script>
<body>
<form method="post">
<select name="sel_brand" onchange="changelocation1(this.form.elements['sel_city'],this.value,citys,2);">
<%
String sql="select code,Describe from testone ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
%>
<option value="<%=rs.getString(0)%>"><%=rs.getString(1)%></option>
<% } %>
</select>
<select name="sel_city">
<option value="">没有回答</option>
</select>
</form>
</body>
</html>
1、整个页面刷新,重新去数据库取值。
2、事先将所有选项取出放在页面上,如同ukyer说得一样。
{
str2.value=str1.value
}<td width="153" align="right" height="30"><b>新预定软件编号:</b></td>
<td width="284" height="30"> <select size="1" name="select1" onchange="change(select1,select2)">
<% String sFileName = "*";
String sTableName = "SoftInfo";
ResultSet rs = null;
rs = test.executeQuery(sFileName,sTableName); while(rs.next())
{
String dd=rs.getString("Softid");
%>
<option value='<%=dd%>'><%=rs.getString("SoftID")%></option>
<%
}
rs.close(); %> </select> </td>
</tr>
<tr>
<td width="153" align="right" height="18"><b>新预定软件名称:</b></td>
<td width="284" height="15">
<select size="1" name="select2" onchange="change(select2,select1)">
<%rs = test.executeQuery(sFileName,sTableName);
while(rs.next())
{
%>
<option value='<%=rs.getString("SoftID")%>'><%=rs.getString("Softname")%>
</option>
<% }
rs.close();
%></select>
^_^嗨嗨
用APPLET,也不是太简单.肯定还有更好的办法的.
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style type="text/css">
body{font-family:Courier New, Courier}
select{font-size:8pt;font-family:Courier New, Courier}
input{font-size:8pt;font-family:Courier New, Courier}
</style>
<SCRIPT LANGUAGE="JavaScript">
<!--
var Name=new Array(3);
var Value=new Array(3);
Name[1]=new Array("Zosatapo1","Zosatapo2","Zosatapo3","Zosatapo4");
Name[2]=new Array("Reic Yang1","Reic Yang2","Reic Yang3","Reic Yang4");function change()
{
selIndex=document.all("test").selectedIndex;
if(document.all("test").selectedIndex==0)
return;for(i=document.all("test").options.length-1;i>-1;i--)
{
document.all("test").options.remove(i);
} for(i=0;i<Name[selIndex].length;i++)
{
document.all("test").options.add(new Option(Name[selIndex][i],"name"+i));
}}function changeEx(){
for(i=document.all("sub").options.length;i>0;i--)
{
document.all("sub").options.remove(i-1);
}
if(document.all("main").selectedIndex==0){
document.all("sub").options.add(new Option("==========","-1"));
return;}
selIndex=document.all("main").selectedIndex;for(i=0;i<Name[selIndex].length;i++)
{
document.all("sub").options.add(new Option(Name[selIndex][i],"name"+i));
}}function reset(){
for(i=document.all("test").options.length-1;i>-1;i--)
{
document.all("test").options.remove(i);
}document.all("test").options.add(new Option("==========","-1"));document.all("test").options.add(new Option("Zosatapo","1"));document.all("test").options.add(new Option("Reic Yang","2"));}function display(object){
alert(object.options[object.selectedIndex].text+" "+object.options[object.selectedIndex].value);
}
//-->
</SCRIPT>
</HEAD><BODY BGCOLOR="#FFFFFF">
First Sample:<br><font color="blue">All items will change After you Selected!</font><br>
<SELECT id="test" onchange="change();">
<option value="-1" selected>==========
<option value="1">Zosatapo
<option value="2">Reic Yang
</SELECT><input name="Reset Select" type="button" value="Reset Select" onclick="reset();" ><br><br>Second Sample:<br><font color="blue">You selected Item in Main Select will change the Sub select Content!</font><br>
Main Select:<SELECT id="main" onchange="changeEx();">
<option value="-1" selected>==========
<option value="1">Zosatapo
<option value="2">Reic Yang
</SELECT>Sub Select:<SELECT id="sub" onchange="display(this);">
<option value="-1" selected>==========
</SELECT><br><br>
</BODY>
</HTML>