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

如何将JavaScript数组发送到表单标记内的Servlet?,java,javascript,jsp,servlets,checkbox,Java,Javascript,Jsp,Servlets,Checkbox,我制作了复选框代码,点击复选框,我将调用函数,该函数将把传递的参数添加到JavaScript数组中。 我已经采取了形式标签内的机构和内部的形式标签只有复选框和一个按钮。 在单击按钮时,将调用servlet,所以我需要某种机制,该机制还将使用复选框值向servlet发送Java脚本数组数据 单击复选框时,我并没有传递复选框值,而是传递其他细节,所以需要其他函数在数组中添加数据并将其传递给servlet 复选框代码: <input type="checkbox" id="demo_box_2&

我制作了复选框代码,点击复选框,我将调用函数,该函数将把传递的参数添加到JavaScript数组中。 我已经采取了形式标签内的机构和内部的形式标签只有复选框和一个按钮。 在单击按钮时,将调用servlet,所以我需要某种机制,该机制还将使用复选框值向servlet发送Java脚本数组数据

单击复选框时,我并没有传递复选框值,而是传递其他细节,所以需要其他函数在数组中添加数据并将其传递给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>

checkbox的代码在表单标记中,因此我还想将带有checkbox值的acdata[]数组发送到servlet,请提供帮助?

这里有一种实现方法

  • 在窗体内创建一个隐藏字段
  • 将Javascript数组转换为逗号/管道分隔字符串(示例)
  • 将隐藏字段的值设置为此字符串(示例)
  • 这样,当您提交表单时,隐藏字段数据也会发送到服务器
  • 在服务器端,拆分字符串以将数据作为Java字符串数组返回
    下面是Santosh解释的示例代码

    在您的脚本中(编辑的

    在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>
    

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

    尝试发送
    JSON.stringify(acdata)
    ,然后再发送
    JSON.parse
    我必须在servlet中解析它的地方?嗯,我对servlet不太了解,但只要您想访问这些数组值,就可以解析它。如果它不支持
    JSON.parse
    (据我所知,这是很有可能的)使用字符串操作,将“[”和“]”中的字符串作为逗号分隔的值处理,方法如下:
    $.getJSON(“addtocart?pid=“+pid
    这是您的servlet代码吗?请尝试放置
    acDataArray=JSON.parse(data.acdata)
    done
    方法中的
    (其中data.acdata包含字符串化数组字符串)我不完全理解第2步和第3步,我尝试使用Hidden pas,但我不能只传递选中的数据,如果选中或未选中,它会发送所有数据,因此您能告诉我如何在隐藏字段中添加数据并将其传递给servlet吗?我添加了相关的示例链接。我是否必须放入
    $(“#Hidden_array”).val(acid)
    函数内部代码还是外部代码?如果在执行时将其放在外部?如果要使用字符串[],则必须使用
    request.getParameterValues(“hiddenconfig”);
    因为它将接受数组。是的,您需要使用
    $(“#隐藏数组”).val(acid)
    在函数内部。因为您只将选中的复选框值传递给函数。您的实际需要是什么?如果我理解正确,您需要将每个选中的复选框值添加到该数组中?如果是这样,您需要设置
    $(“#隐藏#数组”).val(acdata);
    在函数外部是的,
    $(“#隐藏#数组”).val(acdata);
    非常好用。我用过
    acid
    ,当我用
    acdata
    数组时,它就可以用了,先生,谢谢你,季先生。
    var acdata = [];
    function addcategory(acid)
    {
        acdata.push(acid);
        $("#hidden_array").val(acdata);
    }
    
    <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" >
    
    request.getParameterValues("hiddenArray");