js实现向后台传递二维数组

1 篇文章 0 订阅


由于后台只能接收从js传来的字符串,所以,要想把数组传到后台必须要把数组转换成字符串再传,后台取到字符串后再处理,还原成数组的形式。

js代码:

function getExcel(){
  var table=document.getElementById('mytable');
  var rows=table.rows;
  var rowsdata=new Array();
  for(i=0;i<rows.length;i++){
  var row=rows[i];
  var cells=row.cells;
  var celldata=new Array();
  for(j=0;j<6;j++){
  celldata.push(cells[j].innerHTML);
  }
  rowsdata.push(celldata);
  }
  dealXML(rowsdata);
  }
  var XMLHttpReq=false;
  function dealXML(data){
  XMLHttpReq=false;
  createXMLHttpRequest();
  var jsonstr='[';
  for(i=0;i<data.length;i++){
  jsonstr+='{"序号":"'+data[i][0]+'","用户联系手机":"'+data[i][1]+'","用户称呼":"'+data[i][2]+'","反馈内容":"'+data[i][3]+'","反馈时间":"'+data[i][4]+'","反馈版本":"'+data[i][5]+'"},';
  }
  jsonstr=jsonstr.substring(0,jsonstr.length-1);
  jsonstr+=']';
  XMLHttpReq.open("GET","./saveExcel?data="+jsonstr, true);
  XMLHttpReq.onreadystatechange = handleResponse_CancelState;
<span style="white-space:pre">	</span>XMLHttpReq.send(null);
  }
  function createXMLHttpRequest(){
<span style="white-space:pre">	</span>if(window.XMLHttpRequest)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>XMLHttpReq = new XMLHttpRequest();
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>else
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
<span style="white-space:pre">	</span>}
  }


  function handleResponse_CancelState(){
  if(XMLHttpReq.readyState == 4){<span style="white-space:pre">	</span>
  if(XMLHttpReq.status == 200)
<span style="white-space:pre">		</span>{<span style="white-space:pre">	</span>
<span style="white-space:pre">		</span>alert('导出成功');
<span style="white-space:pre">			</span>window.location.reload();
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>else{
<span style="white-space:pre">	</span>alert('导出失败');
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>}
后台取:


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		String jsonString= new String (request.getParameter("data").getBytes("ISO-8859-1"),"utf-8");
	
		System.out.println(jsonString);
		 List<String> aList = new ArrayList<String>();
	        List<String> bList = new ArrayList<String>();
	        List<String> cList = new ArrayList<String>();
	        JSONArray jsa = JSONArray.fromObject(jsonString);
	        for(Object obj : jsa){
	            JSONObject jso = JSONObject.fromObject(obj);
	            aList.add( jso.get("序号").toString() );
	            bList.add( jso.get("用户联系手机").toString() );
	            cList.add( jso.get("用户称呼").toString() );
	        }      
	        for(int i=0;i<aList.size();i++){
	            if(i==0)  
	                System.out.print("a:");
	            System.out.print(aList.get(i)+" ");
	        }      
	        for(int i=0;i<bList.size();i++){
	            if(i==0)  
	                System.out.print("b:");
	            System.out.print(bList.get(i)+" ");
	        }      
	        for(int i=0;i<cList.size();i++){
	            if(i==0) 
	                System.out.print("c:");
	            System.out.print(cList.get(i)+" ");
	        } 
	     
	     
		
			
	}
运行结果:

[{"序号":"序号","用户联系手机":"用户联系手机","用户称呼":"用户称呼","反馈内容":"反馈内容","反馈时间":"反馈时间","反馈版本":"反馈版本"},{"序号":"0","用户联系手机":"18566925421","用户称呼":"李先生","反馈内容":"我是李先生","反馈时间":"2016-03-08 19:22:00.0","反馈版本":"1.0"},{"序号":"1","用户联系手机":"13958756578","用户称呼":"王女士","反馈内容":"我是王女士","反馈时间":"2016-02-02 19:22:29.0","反馈版本":"1.0"}]
a:序号 0 1 b:用户联系手机 18566925421 13958756578 c:用户称呼 李先生 王女士 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值