2010-11-02 29 views
1

我一直在推動我一段時間的問題。這裏是設置:使用jQuery ajax提交序列化數據

我有一個可拖動的列表,用於用戶導航。我想保存用戶如何將列表排序到數據庫,以便下次加載頁面時相同。我正在使用(或嘗試)使用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 [] |
| ORDER [] | 3,2,1 |

問題是,我如何訪問訂單數據?我認爲是因爲它傾銷了表單結構,我會使用點符號來訪問訂單(即form.order)。這是行不通的。當我嘗試並轉儲form.order時,我收到一個錯誤,說明在窗體內找不到變量順序。

我懷疑它是如何將數據發送到Coldfusion頁面的,但我不確定我在做什麼錯誤。所以我的問題是,如果我正確地將數據發送到Coldfusion頁面,我該如何訪問它?如果我錯誤地發送了數據,我哪裏出錯了?

非常感謝!

回答

1

您也可以嘗試訪問表單[「order []」]

+0

工作!這允許我設置一個cfloop通過列表傳遞。再次感謝。 – wblakenc 2010-11-03 12:47:32

0

上一次我看到一個非常類似的(?確切的)問題,得到的答案是,有一個

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

這是造成問題:

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

+0

感謝您的鏈接,但不幸的是,這不是問題。我的application.cfm只有基本的應用程序變量(名稱,超時等)。 – wblakenc 2010-11-03 12:28:20

0

今天早上我做了這個。

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

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

這將被順序[]的aResult改變爲被順序= 3 &順序= 2 &順序= 1個

運行該字符串通過ListToArray(),並且你將有一個真正的冷聚變陣列。

+0

感謝您的回答。然而,這並不適合我。如果我使用:'serialize',{key:order}我得到一個錯誤,「order」沒有被定義。如果我將其更改爲'serialize',{key:'order'}並更改傳入服務器的數據:{order:result},結果它傳入一個空字符串。 – wblakenc 2010-11-03 12:48:14