如何将JavaScript数组发送到表单标记内的Servlet?

时间:2013-12-13 07:28:42

标签: java javascript jsp servlets checkbox

我已经制作了复选框代码并且在复选框上单击我正在调用函数,它将向JavaScript数组添加传递的参数。 我在body和inside form标签内部使用了form标签,只有复选框和一个按钮。 在按钮上单击servlet将被调用,所以我想要一些机制,它也将Java Script数组数据发送到具有复选框值的servlet。

onClick of checkbox我没有传递复选框值,我传递其他细节所以需要其他函数在数组中添加数据并将其传递给servlet。

复选框代码:

<input type="checkbox" id="demo_box_2<%= aname %><%= aval %><%=k %>" class="css-checkbox" name="configcheckbox" value="<%= aval %>" onchange="addcategory('<%= acid %>')">
<label for="demo_box_2<%= aname %><%= aval %><%=k %>" name="demo_lbl_2<%=k %>" class="css-label">&nbsp;<%= aval %></label>

JavaScript函数:

            var acdata = [];
            function addcategory(acid)
            {
                    acdata.push(acid);
                    //alert(acid);
            }

复选框的代码在form form标签内,所以我也想把带复选框值的acdata []数组发送到servlet,所以有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

以下是Santosh解释的示例代码,

在您的脚本中(已修改),

var acdata = [];
function addcategory(acid)
{
    acdata.push(acid);
    $("#hidden_array").val(acdata);
}

在你的HTML中,

<input type="checkbox" id="demo_box_2<%= aname %><%= aval %><%=k %>" 
class="css-checkbox" 
name="configcheckbox" value="<%= aval %>" onchange="addcategory('<%= acid %>')">
<label for="demo_box_2<%= aname %><%= aval %><%=k %>" name="demo_lbl_2<%=k %>" 
class="css-label">&nbsp;<%= aval %></label>

这样就可以在表单中添加一个隐藏字段,

<input type="hidden" id="hidden_array" name="hiddenArray" >

因此你可以像这样在你的jsp / servlet中获取数组值,

request.getParameterValues("hiddenArray");

PS:您可以使用字符串数组 String[]来处理您的数据。

答案 1 :(得分:0)

以下是实现此目的的一种方法,

  1. 在表单中创建隐藏字段
  2. 将Javascript数组转换为以逗号/管道分隔的字符串,(例如12
  3. 将隐藏字段的值设置为此字符串(示例here
  4. 这样,当您提交表单时,隐藏的字段数据也会发送到服务器,
  5. 在服务器端,拆分字符串以将数据作为Java字符串数组返回。