iframe post提交数据

标签: iframe post 数据 | 发表时间:2014-10-08 21:41 | 作者:spp_1987
出处:http://www.iteye.com

 

对于iframe默认get提交 需要进行post数据的大量提交,给找到外国网站的简单例子如:
<form action="iframe.php" target="my-iframe" method="post">
			
  <label for="text">Some text:</label>
  <input type="text" name="text" id="text">
			
  <input type="submit" value="post">
			
</form>
		
<iframe name="my-iframe" src="iframe.php"></iframe>
因为我项目用到的是 页面用的tab 样式(如何实现tab样式切换这里不做说明),嵌入的是三个页面iframe,需要在切换的时候更改target指定iframe名字,为了验证是否可行,只好试下,不然无别的办法。

<form class="form-inline" role="form" id="myFrm" name="myFrm" 
				action="<%=h_common_path%>/ccer/initCcerProject.action?state=notice"  method="post">
					<table class="table table-bordered">
                                             一堆<input />条件 ,可以使用jquery json来post得到查询参数
                                        </table>
</form>
//条件查询,查询按钮触发事件
  function querySelect(){
	  var myFrmJsonStr = formToJsonStr("myFrm");
	  console.log("-------------:"+myFrmJsonStr);
          //放在隐藏域中,后台getParameter()这个参数
	  $("#myFrmJsonStr").val(myFrmJsonStr);
	  document.getElementById("myFrm").target="tabsFrame_ypz"; //当点击查询按钮才处理时间
	  document.getElementById("myFrm").submit();
  }
 //处理form json字符串
	function formToJsonStr(frmId){
		 var jsonStr = "{";
		 var formArray = $("#"+frmId).serializeArray();
		 for(var i = 0; i < formArray.length;i++ ){
			 var formArrayValue = formArray[i];
			 var name = formArrayValue.name;
			 var value = formArrayValue.value;
                         //hidden Input name名字为 MyFrmJsonStr不组合成json字符串提交到后台,这里它的作用是作为json字符串赋值用
			 if(name!="myFrmJsonStr")
			 	jsonStr = jsonStr + "'"+name + "':"+"'"+value+"',";
		 }
		 jsonStr = jsonStr.substring(0,jsonStr.length-1) + "}";
		 return jsonStr;
	}
tabCut('div_ypz');
  
  function tabCut(tabId){
	  var url = "";
	  var getJsonStr = $("#myFrmJsonStr").val();
	  switch (tabId) {
		case 'div_ypz':
			url = "/ccer/initCcerProject.action?state=notice";
			//url = "/pages/ccer/noticeCCER.jsp";
			if(!document.getElementById("tabsFrame_ypz")){
				  $("#"+tabId).append('<iframe name="tabsFrame_ypz" id="tabsFrame_ypz" style="height: 680px;width:100%" border="0" frameborder="0" src="<%=h_common_path %>'+url+'">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>');
			}
			if(""!=getJsonStr){
				document.getElementById("myFrm").action="<%=h_common_path %>"+url;
				document.getElementById("myFrm").target="tabsFrame_ypz";
			}
			break;
		case 'div_yzc':
			url = "/ccer/initCcerProject.action?state=record";
			if(!document.getElementById("tabsFrame_yzc")){
				  $("#"+tabId).append('<iframe name="tabsFrame_yzc" id="tabsFrame_yzc" style="height: 680px;width:100%" border="0" frameborder="0" src="<%=h_common_path %>'+url+'">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>');
			}
			if(""!=getJsonStr){
				document.getElementById("myFrm").action="<%=h_common_path %>"+url;
				document.getElementById("myFrm").target="tabsFrame_yzc";
			}
			break;
		case 'div_yqf':
			url = "/ccer/initCcerProject.action?state=issue";
			if(!document.getElementById("tabsFrame_ygf")){
				  $("#"+tabId).append('<iframe name="tabsFrame_ygf" id="tabsFrame_ygf" style="height: 680px;width:100%" border="0" frameborder="0" src="<%=h_common_path %>'+url+'">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>');
			}
			if(""!=getJsonStr){
				document.getElementById("myFrm").action="<%=h_common_path %>/"+url;
				document.getElementById("myFrm").target="tabsFrame_ygf";
			}
			break;
	  }
	  if(""!=getJsonStr){
		  document.getElementById("myFrm").submit();
	  }
	  console.log("tabId:"+tabId+"///// url:"+url);
  }	
后台java代码:
处理jsonStr代码段如下:
if(!"".equals(jsonStr)){
  //jsonStr格式 为 {"prName":"项目名称","psr":"psr状态"} ,根据json格式字符格式来get()值
			net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(jsonStr);
			String prName=(String) jsonObj.get("prName");
			String psr = (String) jsonObj.get("psr"); ///如果页面的字段 跟查询需要的字段一样 就可以直接追加来使用,不会在后期还要判断。
}

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [iframe post 数据] 推荐:

iframe post提交数据

- - Web前端 - ITeye博客
对于iframe默认get提交 需要进行post数据的大量提交,给找到外国网站的简单例子如:
. 因为我项目用到的是 页面用的tab 样式(如何实现tab样式切换这里不做说明),嵌入的是三个页面iframe,需要在切换的时候更改target指定iframe名字,为了验证是否可行,只好试下,不然无别的办法.

iframe子父页面调用

- - CSDN博客Web前端推荐文章
1、iframe子页面调用 父页面js函数. 子页面调用父页面函数只需要写上window.praent就可以了. 子页面取父页面中的标签中的值,比如该标签的id为“test”,则:. 但是我在chrome浏览器下却发现此方法无效了. 查了半天才了解,在chrome 5+中,window.parent无法在file://协议中运行,但是发布了之后http://协议下是可以运行的.

JavaScript Iframe 自动适应

- - ITeye博客
场景:Iframe嵌入flash,希望flash能随着页面的resize而resize. 首先导入JQuery框架,并设置iframe的scrolling=“auto”,这样的话可以自动的出现滚动条. 然后添加window的resize事件.  这样的话,每次浏览器resize的话,都会对iframe重新设置height,从而得到iframe resize的效果.

三谈Iframe自适应高度

- xiao - Koubei UED Team
一是因为这真的是一个被说烂的话题,二是因为太师傅在n年前就写过这篇再谈iframe自适应高度. 之所以再提该问题,是因为之前项目中确实遇到了这个问题的方方面面,有必要总结一下. 希望对各位有帮助,有错误请指正. 同域、子页面高度不会动态增加. 这种情况最简单,直接通过脚本获取字页面实际高度,修改iframe元素高度即可.

js打印iframe里面的内容

- - JavaScript - Web前端 - ITeye博客
有时候系统中会有这样的需求,打印某些页面里的某部分内容,采用iframe的contentWindow.print()方法可以实现. . 当点击按钮时可以实现打印功能. 这样能实现打印功能,但是存在一个问题,就是如果这个iframe所在的这个页面还有其他的内容,而我们只需打印iframe里的内容,我试过了,如果用google那么他可以正常打印,但是IE,360却会打印这个页面的所有内容,这是因为当前也页面的焦点是在整个文档的,所以我们只需要将焦点设为iframe的window对象就可以了.

jq 解决iframe高度自适应。

- - Web前端 - ITeye博客
已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

jquery 实现iframe 自适应高度

- - Web前端 - ITeye博客
引用:http://www.cnblogs.com/luluping/archive/2009/04/17/1437843.html. 超级简单的方法,也不用写什么判断浏览器高度、宽度啥的. 一个是放在和iframe同页面的,一个是放在test.html页面的. iframe代码,注意要写ID. jquery代码1:.

从HTTP GET和POST的区别说起

- jin - Yining.write()
在推特上抱怨面试时问HTTP GETE和POST的区别得到回答都不满意,有人不清楚,当时只回复了看 RFC2616. 面试时得到的回答大多是:POST是安全的,因为被提交的数据看不到,或者被加密的,其它的还有GET的时候中文出现乱码(在地址栏里),数据最大长度限制等等. 说 POST 比 GET 安全肯定是错的,POST跟GET都是明文传输,用httpfox等插件,或者像WireShark 等类似工具就能观察到.

nodejs-post文件上传原理详解

- never-online - CNode社区
浅谈HTTP中Get与Post的区别. 其中请求报文中的开始行和首部行包含了常见的各种信息,比如http协议版本,方法(GET/POST),accept-language,cookie等等. 而’实体主体’一般在post中使用,比如我们用表单上传文件,文件数据就是在这个’实体主体’当中. 写这篇教程的起因是因为在学习nodejs的过程中,想要自己实现一些文件上传的功能,于是不得不去研究POST.

也谈 GET 和 POST 的区别

- - 博客园_首页
上个月,博客园精华区有篇文章《 GET 和 POST 有什么区别. 及为什么网上的多数答案都是错的 》,文中和回复多是对以下两个问题进行了深究:. 在我看来这两者都不是重点,特写此文予以讨论. GET、POST 专业名称是 HTTP Request Methods. 但 HTTP Request Methods 不只是 GET 和 POST,完整列表如下:.