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

[HELP] view向controller传递大量数据

[复制链接]
发表于 2011-9-19 10:17:04 | 显示全部楼层 |阅读模式
问题:view想controller传递大量数据,当controller接受到数据时,将页面跳转到另一页去
我的方法:在view中,当单击按钮时,向控制器中传递大量数据(不是从表单中获取的),原来以为可以用在控制器的相应方法中用一个数组作为形参,但好像不行;没办法,采用ajax进行传递,但在controller中接收到数据后用redirect方法跳转,好像还不行,原因可能是ajax的回调。。。
请哪位大哥、大姐帮个忙,给个好的解决方案啊!!!!
发表于 2011-9-19 10:39:52 | 显示全部楼层
ajax post过去,成功处理后,用js的location方法跳转
发表于 2011-9-19 10:46:03 | 显示全部楼层
本帖最后由 yuzhigang5460 于 2011-9-19 10:46 编辑

可以在view中使用一个隐藏表单,
HTML复制代码
<input type="hidden"  name="mydata" value="myvalue"/>
复制代码

隐藏表单是可以传递数组的,如果数组很大,可以存储该数组的序列化结果,在控制器中然后反序列化,处理后既可以跳转。
 楼主| 发表于 2011-9-19 10:48:09 | 显示全部楼层
我用的就是这种方法,在控制器中声明几个对应的类属性,用一个方法接收view传递过来的值,并将这些值赋给类属性,在js的回调函数中再转向该控制器中的另一个方法,而在该方法中就可以使用先前赋值的类属性了,那么这些变量是不是必须为static的?还有就是如果有时间延迟,在回调函数转向控制器前,类属性被另一个ajax请求给改变了,咋办,帮忙啊!
发表于 2011-9-19 10:52:26 | 显示全部楼层
薛伟 发表于 2011-9-19 10:48
我用的就是这种方法,在控制器中声明几个对应的类属性,用一个方法接收view传递过来的值,并将这些值赋给类 ...

这些属性当然不会再有了,因为这是一个新的控制器,相当于是新生成的对象;某种程度上,我觉得你这些数据需要保存,用session或者是数据库。
 楼主| 发表于 2011-9-19 11:00:07 | 显示全部楼层
感谢,学到不少,采用隐藏表单试试
发表于 2011-9-19 15:36:14 | 显示全部楼层
支持,感谢分享!
发表于 2011-9-19 16:17:48 | 显示全部楼层
我是来学习的
发表于 2012-9-21 10:39:54 | 显示全部楼层
redirect('/contro/functionname');

本版积分规则