2016-06-13 50 views
1

我需要將jsp頁面的jquery函數中存在的值傳遞給servlet。要將jsp頁面的jquery函數中存在的數組值傳遞給servlet

我已經使用jquery函數對選中的複選框行中的值進行了分組。現在我需要將這些值插入到我的數據庫中。我試圖通過使用request.getParameterValues()傳遞值,但它不起作用。請幫助我將jsp頁面的jquery函數中存儲的數組值傳遞給servlet。

這是我的jQuery出現在jsp頁面功能

<script> 
    $('#btn').on('click', function() { 
      var checkedRows = []; 
      $(':checkbox:checked').closest('tr').each(function() { 
       checkedRows.push(
        $(this).find('td:gt(0)').map(function() { 
         return $(this).html(); 
        }).get() 
       ); 
      });   
      console.log(checkedRows); 

     }); 
    </script> 

JSP頁面

<%@page import="java.util.List"%> 
     <%@page import="web.Products"%> 
     <%@page import="java.util.ArrayList"%> 
     <%@page contentType="text/html" pageEncoding="UTF-8"%> 
     <!DOCTYPE html> 
     <html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    <script type="text/javascript" src="JS/jquery-1.4.2.min.js"></script> 

    <script> 
    $('#btn').on('click', function() { 
      var checkedRows = []; 
      $(':checkbox:checked').closest('tr').each(function() { 
       checkedRows.push(
        $(this).find('td:gt(0)').map(function() { 
         return $(this).html(); 
        }).get() 
       ); 
      });   
      console.log(checkedRows); 

     }); 
    </script> 

    </head> 
     <form name="sform" method="post" action="Save_Products"> 
      <table style="width:40%"> 
       <tr> <th> Brand Name</th> 
        <th> Product Name</th> 
        <th> Description</th> 
       </tr> 
       <tr> 
        <td><% 
     List<Products> pdts = (List<Products>) request.getAttribute("productlist"); 
     if(pdts!=null){ 
     for(Products prod: pdts){ 
     out.println("<input type=\"hidden\" name=\"brand_name\" value=\"" + prod.getBrandname() + "\">"); 
      out.println("<br/>"+prod.getBrandname()); 

      } %> </td> 
      <td><% 
     if(pdts!=null){ 
     for(Products prod: pdts){ 
      out.println("<input type=\"checkbox\" name=\"prod\" checked=\"checked\" value=\"" + prod.getProductname() + "\">" + prod.getProductname()+"<br>"); 
      } } %> </td> 
      <td><% 
      if(pdts!=null){ 
      for(Products prod: pdts){ 
      out.println("<input type=\"text\" name=\"desc\" style=\"width:50px; height:22px\" value=\""+prod.getDesc()+"\"/><br/>"); 
     } 
     } 
     } %> </td> 
     </tr> 
     <br/> 
     <br/> 
     <tr> 
      <td></td> 
      <td align="center"> <input id="btn" type="submit" value="Save" name="save"/> </td></tr> 

      </table> 
      </form> 
     </html> 

回答

0

試試這個代碼傳遞JS數組的servlet:

在JSP中添加:

$.post('Save_Products', {arrayData:checkedRows, mode:"insert"}); 

在你的servlet:

String[] arrayData=request.getParameterValues("arrayData[]"); 
是越來越印刷
+0

空值,如果我打印arrayData – sound

+0

只是想法(爲了避免不確定性):儘量把你的代碼 和 – Taha

+0

之前把js代碼不工作:(我的jquery函數有什麼錯誤? – sound