Rails控制器接收散列中的POST值,它没有自然顺序,但对于我的应用程序,我需要它,因为用户可以通过Javascript更改表单字段的顺序。 (通过jQuery的Sortable)是否有可能在Rails控制器中检索POSTed值的原始顺序?
是否有任何其他方式来检索其原始顺序中发布的值?
Rails控制器接收散列中的POST值,它没有自然顺序,但对于我的应用程序,我需要它,因为用户可以通过Javascript更改表单字段的顺序。 (通过jQuery的Sortable)是否有可能在Rails控制器中检索POSTed值的原始顺序?
是否有任何其他方式来检索其原始顺序中发布的值?
除非你解析原始的后期数据,否则它可能会在散列。由于哈希不是有序的,所以你被搞砸了。
尽管如此,通过使用Rails的参数魔法,您可以将它作为数组传递。例如。 “富[] =酒吧&富[] =巴兹&富= MAZ”(同样适用于post数据)会给你["bar", "baz", "maz"]
为params[:foo]
使用jQuery排序,你只需要或者
这将为您提供像这样设置了一个param :{"item"=>["2", "3", "4", "5", "6", "1", "7"]}
一些例子让你开始:
例的onsubmit(在这种情况下,您的订单是序列化到PARAMS [:serialized_form]):
<FORM ACTION=".." NAME="testform"
onSubmit="$('#serialized_form').value = $('#sortable').sortable('serialize')">
<INPUT TYPE="hidden" id="serialized_form" value="">
...
例子$。员额:
$.post("/", $('#sortable').sortable('serialize'), function(ret){
// whatever you want to do with the outcome here.
});
你可以发布订单作为额外的参数,理论上你可能能够猴子修补它,所以它使用了一个有序的散列,但有很多合并正在进行...... – 2009-08-16 10:03:44
是否有一些标准要求值需要按照它们出现的顺序发布?如果有,浏览器是否关心? – innaM 2009-08-16 10:27:26
Manni,问题在于DR想要维护订单,因为他/她想知道用户将事情分类的顺序。序列化是正确的方法。 – semanticart 2009-08-16 15:49:24