2013-09-16 12 views
0

我有一個可排序的有序列表並使用它的nestedSortable。 它的工作原理。 但現在我想向ajax請求添加一些數據,並且失敗。

var sorted = $('ol.sortable').nestedSortable("serialize"); 
var dataUrl = {}; 
    $("ol.sortable li").each(function(index) { 
    //console.log($(this).attr("id").replace(/\D/g, '') + ": " + $(this).attr("data-url")); 
    dataUrl[$(this).attr("id").replace(/\D/g, '')] = $(this).attr("data-url"); 
}); 

$.ajax({ 
    type: "POST", 
    data: {sort: sorted, dataurl: dataUrl}, 

現在的問題是,當我嘗試使用PHP的foreach循環它失敗的第一個數據「排序」。 此數據現在是一個字符串。 第二部分「dataurl」是一個對象,我可以用foreach遍歷它。

當我可以更改訂單

data: {dataurl: dataUrl, sort: sorted} 

然後突然我dataurl是一個字符串,「分類」是一個對象。

我也嘗試設置dataType:JSON,但不會改變任何東西。

我做錯了什麼?這是一個錯誤?

回答

0

這裏就是這樣,我會做到這一點:

var sorted = $('ol.sortable').nestedSortable("serialize"); 
var dataUrl = {}; 
$("ol.sortable li").each(function(index) { 
    //console.log($(this).attr("id").replace(/\D/g, '') + ": " + $(this).attr("data-url")); 
    dataUrl[$(this).attr("id").replace(/\D/g, '')] = $(this).attr("data-url"); 
}); 

var sendedData = {}; 
sendedData.sort = sorted; 
sendedData.dataurl = dataUrl; 
$.ajax({ 
    url: 'myFile.php', 
    type: 'POST', 
    dataType: 'json', 
    data: sendedData, 
    success: function(result) { 
     // Add your own logic here 
    } 
});