用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
字符串内容:<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获取值传递参数提交的问题的主要内容,如果未能解决你的问题,请参考以下文章