各位高手,小弟是初学者,最近一个问题困扰很长时间,解决不了,问题是这样的:
我的一个表单可以从数据库中查询出多行记录,每一行有三个控件: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>

解决方案 »

  1.   

    如果你会javascript,你可以用javascript做这个事情如果对javascript不熟,你可以在每行都放一个from
      

  2.   

    1,每行一个form,2,先连接,再查询,把顺序调整一下.
      

  3.   

    请问zqrqq大哥,如果用javascript,怎么写啊?
    是不是不用javascript 就只能用每行一个form这种处理方式么?暴暴哥,我试一下,谢谢
      

  4.   


       ls_dest = document.myform.T[i].value;
       ls_sour = document.myform.D[i].value;
    这一段代码将T[i]和D[i]改成Ti和Di将他们连接起来以后去他们的值,不要取数组的值
      

  5.   

    zqrqq大哥,我试了一下每行一个form,这样是可以的,非常感谢。但是你说的用javascript怎么用阿?
    暴暴哥,你说的是怎么用阿。