jsp 如何实现将表单外和表单同时提交给后台?

将区域1的表单和区域2的树对应的值传至后台action(通过点击区域1中的查询按钮),将得到的数据填入区域3的表格中,然后双击区域3的某一行,得到数据显示在区域4中。区域... 将区域1的表单和区域2的树对应的值传至后台action(通过点击区域1中的查询按钮),将得到的数据填入区域3的表格中,然后双击区域3的某一行,得到数据显示在区域4中。
区域1 的传值方式是< form action = "***.action" type = post >
区域2 的传值方式是 ***.action?id=${id};
因为是初学JSP,我想可以用两种方式实现:
ajax实现,但是ajax传值容易,返回值很难,如何将返回的表格返回,并且它的位置还十分精确?
通过iframe实现,但是我之后只传表单或是只传几个ID值,如何将他们同时传给后台。听别人说可以通过将区域2中的ID值通过hidden的方式写进区域1中,然后提交表单即可,但是这个js我不会写,请大家赐教!
展开
 我来答
抽烟一族
2014-12-29 · TA获得超过395个赞
知道小有建树答主
回答量:218
采纳率:100%
帮助的人:145万
展开全部
根据我的理解,你的区域1和区域2是两部分参数,但是,当点击区域1的查询时,需要把两个区域的值都传到后台,如果是这样的话,两种方式:
1、form提交 你的区域1如果一定要是from提交的话,你就可以在区域1的form中写几个隐藏域,具体写几个隐藏域需要看你区域2有几个值需要传到后台,然后你通过form提交就可以取到你想要的值,from隐藏域写法:<input type="hidden" id="hid_test"/>
2、ajax提交 将你区域1中的form的action属性删除,同时将查询按钮添加一个click事件,比如queryList(),然后通过这个方法就可以实现:
function queryList(){
$.ajax(function(){
url :"xxx.action",

type:"post",

data:({"aa":11,"bb":22}),

success:function(data){
//这里是方法调用成功后所要做的操作
//你可以将data返回值取到,然后做你想要的操作

//假设你后台json存放的值为quyu3List,这里你通过var quyu3 = data.quyu3List;来取值

//取到值后,通过动态加载来实现区域3的局部加载

}

});

}
希望对你有帮助
更多追问追答
追答

把你的提交方式改了,改成一个js方法,比如:aa(periodId,formId),里面两个参数就是你要提交的方法后面的参数,

function aa(periodId,formId){
    $.ajax(
        url : "QueryBasForm.do",
        data : ({"periodId":periodId,"formId":formId}),
        type : "post",
        success : function(obj){
            //这里写你的逻辑
        }
    );
}
追问
可是我的返回是一个表格,即区域3,这个返回的数据很难写吧,而且如何调试它的位置也很难,需要css.可不可以将返回的数据填入到已有的表格中呢?
198901245631
2015-08-08 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1734万
展开全部
实现思路就是在表外做一个隐藏的div,之后做一个button按钮,之后直接将所有的信息汇总到此button的点击事件中统一提交。
举例:
<div id="div" style="display: none" >
<div>
<!-- 所有申请的记录显示-->
<form name="form22" id="form22" method="post" action="${ctx}/manage/view/exchange_rate_aintenance" >
<table class="table_common" cellspacing="0" cellpadding="0" id="table2">
<tr >
<td class="title_tr" align="left" colspan="3">
货币类型: <input type="text" id="c_n" name="c_n" style="width:90px;margin: 1" />
</td>
</tr>
<tr>
<td class="title_tr" align="center" colspan="3">
<input type="button" style="white-space: nowrap; text-align: center;" class="List_Button2" value="提交" onclick="addRow()" />
<%-- <input type="reset" style="white-space: nowrap; text-align: center;" class="List_Button2" value="<BOC:I18N name="reset"/>" onclick='confirm("你确认不做任何修改吗?")'/> --%>
<input type="reset" style="white-space: nowrap; text-align: center;" class="List_Button2" value="<BOC:I18N name="reset"/>" onclick="reset1()"/>
</td>
</tr>
</table>
</form>
</div>
</div>

function submit(){
//此处将所有的要提交的内容直接汇总到上面的隐藏表中,实际总后提交的是隐藏表
document.forms(form22).submit();

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白菜一颗
2014-12-29 · TA获得超过8916个赞
知道大有可为答主
回答量:3260
采纳率:69%
帮助的人:3738万
展开全部
自己写一个查询按钮的点击事件,然后在这个事件里面,把区域2中的值写入到区域中的隐藏域中,然后再提交form表单
在区域1中加入<input type="hidden" id="val1"/>,然后在事件里面用document.getElementById("val1").setValue("区域2中取得的值"),再取得区域1的表单.submit()一下
更多追问追答
追问

我的区域2是树结构,使用的是网上通用的dtree结构,然后它的模式是这样的:

    这样如何写取到这两个值呢?直接写就行了吗?在form表单中写入hidden项,将其<input type="hidden" id="val1"/>然后在事件里面用document.getElementById("val1").setValue("period")?

追答
这dTree也应该有提供方法,当选中节点的时候能取得节点上的值吧?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
少女心Eve
2014-12-29 · 记录美好生活每一天,分享生活新鲜事。
少女心Eve
采纳数:590 获赞数:714

向TA提问 私信TA
展开全部
通过隐藏的form提交,或者ajax提交都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式