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 但这并没有改变任何东西。

我做错了什么吗?这是一个错误吗?

4

1 回答 1

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
    }
});
于 2013-09-16T16:38:08.637 回答