用JS获取值传递参数提交的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JS获取值传递参数提交的问题相关的知识,希望对你有一定的参考价值。

<script language="javascript" type="text/javascript">
function link1()


var flag = confirm("确定保存吗?");
if(flag) //用户点击"确定"返回true


document.getElementById("fom").action="sal_chanceservlet?m=7&n=2";
document.getElementById("fom").submit();

else //点击取消返回false

return false; //取消默认行为



</script>
这是触发的js提交,下面是页面参数。我把做修改需要的参数pladate,platodo,pid,id获取了用js传到servlet对应项中处理,结果是每次只处理第一条遍历的数据,因为我提交过去的是多组参数,我没有指名,所以每次都只是在获取第一条数据,有什么办法可以避免这个问题
<td >日期</td>
<td >计划项</td>
<c:forEach items="$pe" var="p">
<tr>
<td ><input type="text" name="pladate" value="$p.pladate" readonly="readonly"/></td>
<td><input type="text" name="platodo" onblur="z3()" value="$p.platodo"/></td>
<td"><input name="pid" type="hidden" value="$p.plid"/><input name="id" type="hidden" value="$p.chance.chcid"/><input type="button" onclick="return link1()" value="保 存"/> </td>
</tr>
</c:forEach>
</table></td>
就是一个不根据ID查询直接遍历做修改的方法,在JSP中怎么使遍历取到的值是我想要的那行,怎样实现参数传递到sevrlt

你可以将你的多条内容组成一个字符串,每条内容都已以特定的字符进行分割,然后存入到数组中去,在提交到后台java代码时,从数组中取出字符串,在按照特定字符把每条内容解析开就OK了。
字符串内容:<pid>内容1</pid><platodo>内容2</platodo><pladate>内容3</pladate>追问

额……详细的说下可以吗?没用过分割

追答

String srcstring1=" this@is@a@about@split@test";
//根据@对字符串进行分割
String stringarray1[]=srcstring1.split("@");
for(String stemp:stringarray1)
System.out.println(stemp);

自己运行下就知道了。
在jdk文档中看String的split方法

追问

这个分割有问题,如果要使用分割,应该连续使用两次,分割一次之后的结果还是一个集合,还要分割一次,这在servlet中怎么获取额……

这个分割有问题,如果要使用分割,应该连续使用两次,分割一次之后的结果还是一个集合,还要分割一次,这在servlet中怎么获取额……

参考技术A <input type="text" name="pladate" value="$p.pladate" 这些name的名字加个参数区分下,使所有的name值都不同,如name="pladate$p.id"追问

你的意思是用遍历的ID放在文本框名字中,那每个文本框中的名字都不一样,可以做到区分的效果,这个我考虑到过,这样做了在JSP页面是没问题,可是在sevrlt中怎么取这个name值呢?

追答

你说的是Servlet吧,这个我不熟,但我想应该是一样的,可以获取到form表单里的所有数据。另外你的表单是要提交所有的input内容,提交表单的按钮为什么要放到循环里呢。

追问

是每个文本框后面都有一个保存的按钮,用你刚才说的方式,在servlet中获取不了值,JSP文本框成了name$p.pid,在servlet中获取不到值

追答

Servlet中取值格式可能不同吧,id没取到。随便想点办法拉,只要保存每个name都不同就行了

追问

额,保证了name不同,可是就不能获取,这是个坑,从左爬到右,还是在坑里,额……

参考技术B 后台怎么取值的,可能通过getParamValues()取值追问

你这个方法我刚才试了,取得必须是字符串,我强转整型的代码报错去了。

追答

你怎么转的Integer.parseInt()这个方法是可以的,我用到过的类似
String[] ajs=request.getParameterValues("ajs");
Integer.parseInt(ajs[i])

追问

哦,你是取出来之后再转的,我试试

js 方法穿参数(只传参数,不执行它的提交操作)

js 怎样把值从一个方法传到另一个要提交到Action的方法中,而不去执行那个方法的提交,只是把参数传进去呢?谢谢了。。。。急急急

你是不是这个意思
f()
g()
两个js方法。你想用f()获取参数给g()用,然后在g()提交的时候吧这些参数传过去。

如果是这样的话你可以设置个全局的 变量 ,f()方法是用来把值赋给它。
g()提交的时候也是提交的这个变量。

例如:
var mon ;

function f()
//..一些操作
mon = 获取到得参数。



function g()

location.href="请求xxxxxx?参数=" + mon ;
参考技术A 有三种办法
一是 ajax方式过去
二是 iframe方式 通过parent.需要改变的过去
三是 window.open 方式打开的 通过opener.需要改变的过去
参考技术B 你的问好模糊啊,你得把问题说清楚,别人才能给你解决方案啊。。。。。

以上是关于用JS获取值传递参数提交的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何获取一个网页POST的提交的参数

js如何获取地址栏传递的参数值?

.NET 关于一般处理程序获取表单传递的参数的问题

easyui表单提交,后台获取不到值

PHP如何不用表单进行POST传递

HttpURLConnection如何传递参数?