各位高手,小弟是初学者,最近一个问题困扰很长时间,解决不了,问题是这样的:
我的一个表单可以从数据库中查询出多行记录,每一行有三个控件:text,select,submit ,其中text是从数据库中获取的,select是用户下拉选择的。
我现在有两个问题解决不了:
1、如何点击每一行submit,都能从本行获取text、select的内容并传给下一个页面
2、我的select 中的数据为何取不到,总是为NULL呢?
谢谢!附:源代码
<%@ page contentType="text/html;charset=gb2312"%>
<p>正在登陆目标数据库并查询数据,请稍候......</p>
<jsp:useBean id="DB_Conn" scope="page" class="JavaBean.DB_Conn"/>
<jsp:useBean id="DB_User" scope="page" class="JavaBean.DB_User"/>
<%@page import="java.sql.ResultSet"%>
<%
DB_Conn.ConnectDestDB();
ResultSet dest_rs = null; //sql语句:
String sql_dest = "select * from user_tab_comments ";
// 执行sql语句:
dest_rs = DB_Conn.sm.executeQuery(sql_dest);
%>
<%
DB_Conn.ConnectSourceDB();
ResultSet sour_rs = null; //sql语句:
String sql_sour = "select * from user_tab_comments ";
// 执行sql语句:
%><script language="JavaScript">function setparm( i){ var i;
var ls_dest,ls_sour;
ls_dest = document.myform.T[i].value;
ls_sour = document.myform.D[i].value; document.myform.action = "COMPARE_COLUMN.jsp" + "?dest=" + ls_dest + "&sour=" + ls_sour;
document.myform.submit();}</script>
<form name="myform" id="myform" method="POST" action="--WEBBOT-SELF--" > <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<table border="1" width="81%" id="table1">
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center" colspan="2">目标数据库</td>
<td align="center">源数据库</td>
<td align="center">目标-源对照</td>
<td align="center" rowspan="2">对照结果查看</td>
</tr>
<tr>
<td align="center"> </td>
<td align="center">选择</td>
<td align="center" width="23%">目标数据库表名称</td>
<td align="center" width="16%">目标数据库表注释</td>
<td align="center" width="30%">源数据库表名称</td>
<td align="center" width="16%">字段对照</td>
</tr>
<% String ls_check_name,ls_text_name,ls_button_name,ls_select_name,ls_col_name;
String ls_num;
int li_num = 0;
while (dest_rs.next())
{
li_num = li_num + 1;
ls_num = String.valueOf(li_num);
ls_check_name = "C" + ls_num;
ls_text_name = "T" + ls_num;
ls_button_name = "B" + ls_num;
ls_select_name = "D" + ls_num;
ls_col_name = "Col" + ls_num;
%>
<tr>
<td width="4%" align="center" valign="bottom" height="26">
<input type="text" name="Col" size="5" value=<%=ls_num%>></td>
<td width="7%" align="center" valign="bottom" height="26">
<input type="checkbox" name="C" value="ON"></td>
<td align="center" width="23%" height="26">
<input type="text" name="T" size="20" value = <%=dest_rs.getString("TABLE_NAME") %> ></td>
<td align="center" width="16%" height="26"> <%=dest_rs.getString("COMMENTS") %> </td>
<td align="center" width="30%" height="26">
<select size="1" name="D">
<% sour_rs = DB_Conn.sm.executeQuery(sql_sour);
while (sour_rs.next()) {%>
<option ><%=sour_rs.getString("TABLE_NAME") %></option>
<% }%>
</select></td>
<td align="center" width="16%" height="26">
<input type="submit" name="B" value = "字段对照" onClick = "setparm(<%=li_num %>)"></td>
<td align="center" width="16%" height="26">查看</td>
</tr>
<% }%> </table>
<p> </p>
<p> </p>
<p> </p>
</form>
我的一个表单可以从数据库中查询出多行记录,每一行有三个控件:text,select,submit ,其中text是从数据库中获取的,select是用户下拉选择的。
我现在有两个问题解决不了:
1、如何点击每一行submit,都能从本行获取text、select的内容并传给下一个页面
2、我的select 中的数据为何取不到,总是为NULL呢?
谢谢!附:源代码
<%@ page contentType="text/html;charset=gb2312"%>
<p>正在登陆目标数据库并查询数据,请稍候......</p>
<jsp:useBean id="DB_Conn" scope="page" class="JavaBean.DB_Conn"/>
<jsp:useBean id="DB_User" scope="page" class="JavaBean.DB_User"/>
<%@page import="java.sql.ResultSet"%>
<%
DB_Conn.ConnectDestDB();
ResultSet dest_rs = null; //sql语句:
String sql_dest = "select * from user_tab_comments ";
// 执行sql语句:
dest_rs = DB_Conn.sm.executeQuery(sql_dest);
%>
<%
DB_Conn.ConnectSourceDB();
ResultSet sour_rs = null; //sql语句:
String sql_sour = "select * from user_tab_comments ";
// 执行sql语句:
%><script language="JavaScript">function setparm( i){ var i;
var ls_dest,ls_sour;
ls_dest = document.myform.T[i].value;
ls_sour = document.myform.D[i].value; document.myform.action = "COMPARE_COLUMN.jsp" + "?dest=" + ls_dest + "&sour=" + ls_sour;
document.myform.submit();}</script>
<form name="myform" id="myform" method="POST" action="--WEBBOT-SELF--" > <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<table border="1" width="81%" id="table1">
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center" colspan="2">目标数据库</td>
<td align="center">源数据库</td>
<td align="center">目标-源对照</td>
<td align="center" rowspan="2">对照结果查看</td>
</tr>
<tr>
<td align="center"> </td>
<td align="center">选择</td>
<td align="center" width="23%">目标数据库表名称</td>
<td align="center" width="16%">目标数据库表注释</td>
<td align="center" width="30%">源数据库表名称</td>
<td align="center" width="16%">字段对照</td>
</tr>
<% String ls_check_name,ls_text_name,ls_button_name,ls_select_name,ls_col_name;
String ls_num;
int li_num = 0;
while (dest_rs.next())
{
li_num = li_num + 1;
ls_num = String.valueOf(li_num);
ls_check_name = "C" + ls_num;
ls_text_name = "T" + ls_num;
ls_button_name = "B" + ls_num;
ls_select_name = "D" + ls_num;
ls_col_name = "Col" + ls_num;
%>
<tr>
<td width="4%" align="center" valign="bottom" height="26">
<input type="text" name="Col" size="5" value=<%=ls_num%>></td>
<td width="7%" align="center" valign="bottom" height="26">
<input type="checkbox" name="C" value="ON"></td>
<td align="center" width="23%" height="26">
<input type="text" name="T" size="20" value = <%=dest_rs.getString("TABLE_NAME") %> ></td>
<td align="center" width="16%" height="26"> <%=dest_rs.getString("COMMENTS") %> </td>
<td align="center" width="30%" height="26">
<select size="1" name="D">
<% sour_rs = DB_Conn.sm.executeQuery(sql_sour);
while (sour_rs.next()) {%>
<option ><%=sour_rs.getString("TABLE_NAME") %></option>
<% }%>
</select></td>
<td align="center" width="16%" height="26">
<input type="submit" name="B" value = "字段对照" onClick = "setparm(<%=li_num %>)"></td>
<td align="center" width="16%" height="26">查看</td>
</tr>
<% }%> </table>
<p> </p>
<p> </p>
<p> </p>
</form>
是不是不用javascript 就只能用每行一个form这种处理方式么?暴暴哥,我试一下,谢谢
ls_dest = document.myform.T[i].value;
ls_sour = document.myform.D[i].value;
这一段代码将T[i]和D[i]改成Ti和Di将他们连接起来以后去他们的值,不要取数组的值
暴暴哥,你说的是怎么用阿。