今天在家做公司的项目,遇到一个很奇怪的事,其中JS传递数组时,传递过去的数据会以,(分号)分隔。代码如下:
其中接收的代码如下:
输出的结果如下图:
[img]D:\aa.bmp[/img]
function ExpertOpinion()
{
var item=document.getElementsByName("idItems"); //得到所有的项目,根据项目ID得到其对应的表决结果和意见
if(item!="")
{
var idItem=new Array(); //所有的项目ID
var idOperate=new Array(); //所有选择的操作类型
var opinion=new Array(); //所有的意见
for(var i=0;i<item.length;i++)
{
idItem[i]=item[i].value; //所有项目
var temp=item[i].value+"rd"; //当前某一项目的三种选择
var opinoinId=item[i].value+"text"; //专家意见ID
opinion[i]=document.getElementById(opinoinId).value;
var selectArr=document.getElementsByName(temp);
for(var j=0;j<selectArr.length;j++) //所有已经选择的结果
{
if(selectArr[j].checked)
{
idOperate[i]=selectArr[j].value;
break;
}
}
}
var url="servlet/makeScoreAction";
var paras='IDITEM='+idItem+'&IDOPERATE='+idOperate+'&opinion='+opinion;
myajax=new Ajax.Request(url,{method:'post',parameters:paras,onComplete:handleResult});
}
}
function handleResult(res)
{
alert(res.responseText);
}
其中接收的代码如下:
String IDITEM[]=request.getParameterValues("IDITEM");
String IDOPERATE[]=request.getParameterValues("IDOPERATE");
String opinion[]=request.getParameterValues("opinion");
for(int i=0;i<IDITEM.length;i++)
{
System.out.println(IDITEM[i]);
}
for(int i=0;i<IDOPERATE.length;i++)
{
System.out.println(IDOPERATE[i]);
}
for(int i=0;i<opinion.length;i++)
{
System.out.println(opinion[i]);
}
输出的结果如下图:
[img]D:\aa.bmp[/img]