用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7631|回复: 6
收起左侧

[讨论/交流] codeigniter页面跳转并且传递参数有没有好的解决方案

[复制链接]
发表于 2011-6-3 13:17:03 | 显示全部楼层 |阅读模式
案例是这样的:在A页面中点击"<a href="B的url">.......</a>",要求跳转到B页面的同时,要求把A页面的参数信息传递到B页面使用。

现在我想到两种传递参数方法:
法1、好像设置 $config['page_query_string'] = TRUE以后,在超链接(或者用CI的anchor函数,其实也是超链接)"<a>...</a>"里使用格式:”http://url?参数名=参数值“可以做到,但是这是get方式提交数据,不太适合传输大量数据(我传递的是table整张表的字符串),虽然能够做到案例的要求。
法2、采用jQuery的$.post方法确实能传递大量数据,但是因为是异步提交,所以提交以后,页面还是停留在当前页面,没有发生跳转,不符合案例要求,所以砍掉这个方法。

总之这两种方法都不是那么很合适,不知道CodeIgniter框架针对这种需求,有没有其他解决方案?

妈的,实在不行我就用session,A页面把参数写在session里,跳转到B页面后读这个session.
 楼主| 发表于 2011-6-3 13:18:15 | 显示全部楼层

codeigniter页面跳转并且传递参数有没有好的解决方案

案例是这样的:在A页面中点击"<a href="B的url">.......</a>",要求跳转到B页面的同时,要求把A页面的参数信息传递到B页面使用。

现在我想到两种传递参数方法:
法1、好像设置 $config['page_query_string'] = TRUE以后,在超链接(或者用CI的anchor函数,其实也是超链接)"<a>...</a>"里使用格式:”http://url?参数名=参数值“可以做到,但是这是get方式提交数据,不太适合传输大量数据(我传递的是table整张表的字符串),虽然能够做到案例的要求。
法2、采用jQuery的$.post方法确实能传递大量数据,但是因为是异步提交,所以提交以后,页面还是停留在当前页面,没有发生跳转,不符合案例要求,所以砍掉这个方法。

总之这两种方法都不是那么很合适,不知道CodeIgniter框架针对这种需求,有没有其他解决方案?

妈的,实在不行我就用session,A页面把参数写在session里,跳转到B页面后读这个session.
发表于 2011-6-3 13:21:42 | 显示全部楼层
你要传巨大的参数,为啥不试试用传统的form post?

点评

谢谢!我傻了。这么简单都没想到,净搞些麻烦的。刚才简单测试了一下可以,提交过去的table表格html格式字符串$table='<table><tr>....</tr></table>',可以被   发表于 2011-6-3 13:57
 楼主| 发表于 2011-6-3 13:57:41 | 显示全部楼层
回复 visvoy 的帖子

谢谢!我傻了。这么简单都没想到,净搞些麻烦的。刚才简单测试了一下可以,提交过去的table表格html格式字符串$table='<table><tr>....</tr></table>',可以被接收页面B接收,B接收时使用CI的$this->input->post()方法,你说从页面A过来的字符“<”和字符">"会不会被CI过滤掉,或者说被转义称'&lt' 和'&gt'。这样反而麻烦。在B页面我接收后,用正则表达式去匹配'<'和‘>'字符,如果被过滤掉或者转义掉,正则表达式匹配不到这些尖括号就麻烦了。$_POST[]的方法应该不会过滤或者转义,不知道$this->input->post()会不会这样干。
发表于 2011-6-3 14:20:19 | 显示全部楼层
我没记错的话是不会的.
发表于 2011-6-3 20:57:13 | 显示全部楼层
不会转义,原汁原味
发表于 2011-6-5 01:04:15 | 显示全部楼层
嗯框架也是建立在PHP原生代码的基础上的啊

本版积分规则