使用jQuery ajax post提交序列化数据

时间:2010-11-02 19:50:45

标签: post coldfusion jquery

我的问题一直困扰我一段时间。这是设置:

我有一个可用于用户导航的可拖动列表。我想保存用户如何将列表命令到数据库,以便下次加载页面时它们是相同的。我正在使用(或尝试)使用ajax调用来保存订单。

这是我的jQuery:

$(document).ready(function() {    
$( "#sortable" ).sortable({
            revert: true,
            stop: function(event, ui) {
                var aResult = $('#sortable').sortable('toArray');    
                postChanges( aResult );        
            }
        });           

});

function postChanges( result ) {

$.ajax({
    type: "POST",
    url: "model/customNav.cfm",
    data: {order: result },             
    timeout: "5000" 

});
}

在cfm页面“CustomNav”上我有一个简单的cfdump来转储表单变量以确保数据正确发送: (我试图发布一张图片,但我太新了,我会试着“画出”来自cfdump的结果)


| struct |
|字段名称|订单[] |
| ORDER [] | 3,2,1 |

问题是,如何访问订单数据?我想因为它正在转储表单结构,我会使用点表示法来获取对订单的访问权(即form.order)。这不起作用。当我尝试转储form.order时,我得到一个错误,说明在表单中找不到变量顺序。

我怀疑它与我如何将数据发送到coldfusion页面有关,但我不确定我做错了什么。所以我的问题是,如果我正确地将数据发送到coldfusion页面,我该如何访问它?如果我发送的数据不正确,我哪里出错?

非常感谢!

3 个答案:

答案 0 :(得分:1)

您也可以尝试访问表单[“order []”]

答案 1 :(得分:0)

上次我看到一个非常相似(确切?)的问题,答案是有一个

<CFSET SetEncoding("FORM", "iso-8859-1") />
导致问题的application.cfc / application.cfm中的

After jquery post I can't read form values with coldfusion

答案 2 :(得分:0)

我今天早上这样做了。

var aResult = $('#sortable')。sortable('toArray');

将aResult更改为$('#sortable')。sortable('serialize',{key:order});

这会将aResult从order []更改为order = 3&amp; order = 2&amp; order = 1

通过ListToArray()运行该字符串,你将拥有一个真正的Cold Fusion数组。