我有一个可排序的有序列表并使用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-loop时,它会因第一个数据“排序”而失败。 此数据现在是一个字符串。 第二部分“dataurl”是一个对象,我可以用foreach迭代它。
当我可以更改订单时
data: {dataurl: dataUrl, sort: sorted}
然后突然我的dataurl是一个字符串,“sort”是一个对象。
我还尝试设置dataType:JSON,但这不会改变任何内容。
我做错了吗?这是一个错误吗?
答案 0 :(得分: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
}
});