gird分页时form与url参数的探讨

大家可能很常用一个查询的jsp页面,这个jsp页面很常见的布局是上面一个form,放置一些查询条件;下面一个grid的form,放置查询结果gird。

这里主要征对的是grid分页时所涉及到的相应的form与参数的探讨。

当gird分页时,要把这个document的所有(包括查询条件的form和显示grid的form)的元素作为参数进行传递,同时取出grid这个form的url值,放在一个obj里。如下:

Js代码

function getFormInfo(event){
 var formInfo = {url:"",pars:""};
 for (var i=0,formNum = document.forms.length;i<formNum;i++){
 if(document.forms[i].contains(Event.element(event))){
  formInfo.url = document.forms[i].action;
 }
 formInfo.pars += "&&" + encodeURI(Form.serialize(document.forms[i]));
 }
 return formInfo;
}

1、在上述代码中通过调用form.contains(srcElement)来得到点击元素的form,从而得到这个form的url。

2、上述代码通过遍历document的所有的form,通过encodeURI(Form.serialize(document.forms[i]))把form的元素编码后作为参数传递。

3、上述代码最后返回的是一个obj,这个obj存放了gird from的url和这个jsp页面所包含的所有编码后的参数。

参数传递完,后台获取到了参数就可以根据得到的参数值进行查询分页了:)

如果有较为复杂的需求:

第一种情况:比如需要点击grid的某个单元格的值,open出一个页面,在open出的页面(我们暂把它叫作第二个页面,opner的页面我们叫它第一个页面)里显示具体的grid列表。如在第一个页面的gird的单元格为故障次数为5的值,点击这个5后,要能open出一个显示具体的5条记录的gird的页面。如果要在open出的页面的gird要正确的分页,必须得到opner的页面(第一个页面)的查询条件的那个form的参数值。

上述代码getFormInfo()方法显示不能满足要求,因为它是只在自己所处的页面的document去取元素的值,并没有考虑它所opener的页面的document。所以我们需要把第一个页面的查询form的元素考虑上去。

第二种情况:还有一种情况是,我们“点击这个5后,要能open出一个显示具体的5条记录的gird的页面”,用了encodeURI(Form.serialize(forms[0]))的方法把我们所需要的form的所有元素作为参数传递了。但是点击5后需要传的参数是equip_type_no(设备类型)这个参数,可能query这个form里也有equip_type_no这个元素,而我们单独要传的equip_type_no参数是在grid的某个单元格得到的,它写在encodeURI(Form.serialize(forms[0]))的后面,这时候后台只取前面的equip_type_no参数的值,而忽略了后面的我们真正关心的equip_type_no的参数值。

要解决多个参数名相同而取我们关心的那个值对,可以先删除search字符串里所有的值对名为equip_type_no的值,然后再追加(append)我们的要传的参数值。

解决上面两个问题的代码如下:

首先可以在打开的页面(第二个页面)里写个隐藏域,值包含要传递到后台的那个openr的form的index值和要append的参数值对:

Js代码

<input type="hidden" size="200" name="APPENDPARSOBJ" value="{openerForm:0,appendPars:'BRANCH_CENTER_NO=<%=request.getParameter("BRANCH_CENTER_NO")%>&EQUIP_TYPE_NO=<%=request.getParameter("EQUIP_TYPE_NO")%>&MODEL=<%=request.getParameter("MODEL")%>'}"></input> 

时间: 2024-09-15 21:07:36

gird分页时form与url参数的探讨的相关文章

PHP判断FORM表单或URL参数来的数据是否为整数的方法_php技巧

PHP判断FORM表单或URL参数来的数据是否为整数,is_int函数对于FORM表单或URL参数过来的数据是没有办法判断是否是整数的,因为FORM过来的是字符串. 用is_numeric可以判断是否为数字类型,再判断是否有小数点就可以判断是不是整数了 if(!is_numeric($page)||strpos($page,".")!==false){ echo "不是整数"; }else{ echo "是整数"; } 有时候我们需要判断id是否

通过URL参数post传递的实现方式 PHP/Javascript

PHP实现方法 在做接口,post传递方式,数据以字符串形式传输,返回数据用JSON封装. 然后就开始各种测试啊. 分享最终的方法: 定义抓取函数: function http_post_data($url, $data_string) {     $ch = curl_init();     curl_setopt($ch, CURLOPT_POST, 1);     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLO

通过javascript获得url参数

javascript 页面提交数据一般有两种方法:get,post.post就是所谓的form提交,使用视图:get是通过url提交. Get方法一般用后台代码(如asp,asp.net)获得参数,代码很简单:Request.QueryString["id"];即可获取.  有些时候需要直接在前台获取url参数,要用到javascript,js没有直接获取url参数的方法,那么,我们如何通过js获取url参数呢? 阅读代码编辑代码运行效果复制HTML代码保存代码<!DOCTYPE

破译百度第一讲 百度搜索结果页url参数详解

  在百度首页输入任意关键词搜索之后,我们跳转到搜索结果页面,在浏览器的网址栏我们可以看到很长的一串url地址.那么,你真的了解这一串url的含义吗? s?:搜索 百度搜索结果页使用了重定向,因此我们看到的不是search.php?这样的url格式 wd:当前搜索的关键词 即输入的关键词的urlencode字符串,编码格式为gbk或者utf-8,默认编码格式为utf-8.用于作为搜索原料,百度还会经过分词.判类等操作,不是直接检索数据库,这个会在后面的破译百度系列当中详细讲解. bs:上一次搜索

使用支付宝对企业金流接口的注意事项--URL参数警报

现在许多企业与组织都有网上卖东西的需求,而在线付款成为B2C的最大难题,因为银行不能能直接与 那么多企业(而且是中小企业)实施技术对接,幸好有类似支付宝这样的中间件,这个问题才得以解决,但 是在付款给支付宝时,有一个"URL参数问题",如果处理不当,就会给粗心的接口使用者造成损失. 这样讲的意思是:如果支付宝可以更加严谨的处理或B2C企业技术人员能够严谨处理,这个损失是可以 避免的. 为了说明问题所在,先说一下支付宝接口在处理客户付款时的流程: 1.顾客浏览B2C网站并选择产品,并点击

在jsp页面如何获得url参数

 这篇文章主要介绍了在jsp页面获得url参数的方法,需要的朋友可以参考下 当一个url过来时,如:http://localhost:8080/pro/demo/hello.jsp?name=john,在hello.jsp页面,我们可以这样得到name的值:   代码如下: <%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServ

js正则解析URL参数示例代码

URL参数使用js正则解析具体实现代码如下,有需求的朋友可以参考下,希望对大家有所帮组   复制代码 代码如下: var url = "http://127.0.0.1/e/action/ShowInfo.php?classid=9&id=2";//定义变量 function parse_url(_url){ //定义函数 var pattern = /(w+)=(w+)/ig;//定义正则表达式 var parames = {};//定义数组 url.replace(patt

hibernate进行分页时,sessionFactory为null报空指针异常

问题描述 hibernate进行分页时,sessionFactory为null报空指针异常 从网上查了许都,都没能解决,不知道是配置文件有问题,还是方法写的有问题 解决方案 dao层实现类: /** @ClassName: BaseDaoImpl @Description: 基础dao实现 @author john @date 2015年2月26日 下午3:27:15 */ @SuppressWarnings("unchecked") public abstract class Bas

微信支付 原生支付-微信支付,原生支付URL参数错误

问题描述 微信支付,原生支付URL参数错误 微信支付,扫码后提示[原生支付URL参数错误],我的格式为weixin://wxpay/bizpayurl?appid=****&mch_id=****&nonce_str=766EBCD59621E305170616BA3D3DAC32&product_id=201503241009011261&time_stamp=1427162942&sign=54C620C0CD2E59C0C65A5118E1AFD398 另外参