2013-12-13 71 views
0

我已經使複選框代碼和複選框單擊我調用函數,它將添加傳遞參數到JavaScript數組。 我已經採取身體內部窗體標籤和內部窗體標籤只有複選框和一個按鈕。 點擊按鈕時,servlet將會調用,所以我想要一些機制,它也會將Java腳本數組數據發送到帶有複選框值的servlet。如何將JavaScript數組發送到表單標籤內的Servlet?

onClick複選框我沒有通過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); 
      } 

複選框的代碼是窗體標記內,所以也希望發送acdata []數組與複選框值到服務程序,所以請幫忙嗎?

+0

嘗試發送'JSON.stringify(acdata)',然後'JSON.parse'它稍後 – tewathia

+0

我將不得不在servlet中解析? –

+0

嗯,對servlet不瞭解很多,但是要解析它,無論你想要訪問那些數組值。如果它不支持'JSON.parse'(這是很有可能的,就我所知)使用字符串操作,將'['和']'中的字符串視爲逗號分隔值 – tewathia

回答

1

下面是示例代碼桑托斯解釋說,

在腳本(編輯),

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[]處理您的數據。

+0

我必須把'$(「#hidden_​​array」)。val(acid);'代碼放在函數內部還是外部?如果我將它放在外面,它會被執行? –

+0

如果我要使用String [],那麼我將不得不使用'request.getParameterValues(「hiddenconfig」);'因爲它會接受數組。 –

+0

是的,你需要在函數內部使用'$(「#hidden_​​array」)。val(acid);''。 –

0

下面是實現這一點的一種方式,

  1. 形式內創建隱藏字段,
  2. 轉換Javascript數組到逗號/管分隔的字符串,(例如12
  3. 集該字符串的隱藏字段的值(例如here
  4. 這樣,當您提交表單時,隱藏字段數據也會發送到服務器,
  5. 在服務器端,分割字符串以將數據返回爲Java字符串數組。
+0

我完全不理解第2步和第3步,我嘗試了使用隱藏的方式,但是我無法傳遞只有選中的數據,它會發送所有數據(如果選中或不選中),那麼您會告訴我如何添加數據隱藏的領域,並將其傳遞給servlet? –

+0

我已添加相關示例鏈接。 – Santosh

相關問題