1

我的标题可能不够清楚,所以让我先解释一下我的情景。我有一个下拉列表,它从表中获取表列表。现在,如果我选择其中一张表,它将通过以下代码显示所有列:

<%          
String columnsql = "SELECT COLUMN_NAME as ColumnName FROM information_schema.columns " 
+ "WHERE  table_name = '"+ TableName + "' ORDER  BY ordinal_position";
PrintDebug.println("Table:" + TableName);
ResultSet myRs = aDbManager.retrieveRec(columnsql);

int count =0;
//String[] arraycolumn;
//boolean[] arraycheckbox;
//String[] arraysearch;
while (myRs2.next()) {

    columnname = myRs2.getString("ColumnName");
    //PrintDebug.println("Column"+count+": "  + columnname);        
%>
<label id="lblcolumnname<%=count %>" value=<%=columnname%>> <%=columnname%></label> 
&nbsp;
&nbsp;
<input id="chkcheckbox<%=count %>" type="checkbox" value=<%=columnname %>>
&nbsp;
&nbsp;
<input id="txtsearch<%=count %>" type="text">
<br>
<%
    count++;
}
myRs2.close();
%>

所以上面的代码将生成我选择的表中的每一列。我使用javascript通过onchanged刷新。

这里的问题:我应该如何存储列,不管复选框是否被选中,以及查询字符串中的搜索文本框。

抱歉我的英语很差,很困惑我应该在这个动态生成和存储上使用的逻辑传递给其他页面/servlet以处理复选框的查询字符串是否被选中或不决定是否显示该列,搜索文本框是"" 或得到过滤的价值。

正在考虑通过数组解决方案,在动态方面是否有可能?因为我必须在另一端检索它来处理查询。谢谢。

4

1 回答 1

2

据我了解,如果选中列,您希望列名及其各自的值在提交表单时做一些事情。

添加name到复选框和文本字段。

<input id="chkColumn<%=count %>" name="columnNames" type="checkbox" value=<%=columnname %>>
&nbsp;
&nbsp;
<input id="txtSearch<%=count %>" name="val_<%=columnname%>" type="text">

此外,将表名添加为隐藏参数。所以,它也会被提交

<input type="hidden" name="tableName" value="<%=TableName%>" />

现在,当您的表单在 Servlet/JSP 中提交时(不推荐)。

您可以访问所有选中的复选框

String tableName = request.getParameterValues('tableName');
String[] colNames=request.getParameterValues('columnNames');

处理 Array 中的每个项目并获取每列的搜索值,例如

String strPrefix = "val_";
String strVal = strPrefix + colNames [0]; // you will get value for each column
于 2013-04-18T07:12:59.783 回答