0

我有数据库中的项目列表

ITEMS
  I_id int,
  I_name varchar(50),
  I_order int

我显示在 ul li

<ul id='items'>
   <li><span class='txt'>item-1</span> <span class='mOrder'>1</span></li>
   <li><span class='txt'>item-2</span> <span class='mOrder'>2</span></li>
   <li><span class='txt'>item-3</span> <span class='mOrder'>3</span></li>
   <li><span class='txt'>item-4</span> <span class='mOrder'>4</span></li>
   <li><span class='txt'>item-5</span> <span class='mOrder'>5</span></li>
   <li><span class='txt'>item-6</span> <span class='mOrder'>6</span></li>
   <li><span class='txt'>item-7</span> <span class='mOrder'>7</span></li>
   <li><span class='txt'>item-8</span> <span class='mOrder'>8</span></li>
   <li><span class='txt'>item-9</span> <span class='mOrder'>9</span></li>
</ul>
<input type='button' id='btnSave' value=' Save order ' />

通过 jquery sortable 插件排序

$(".items").sortable({
   $(".items li").each(function () {
       var OrderNum = (parseInt($(this).index()) + 1);
       $(".mOrder", this).html(OrderNum);
   });
});

现在我想保存新订单
我有 saveOrder.ashx 文件来更新数据库中的记录
我在用 ajax 发送数据时遇到问题
我正在尝试如下

$("#btnSave").click(function(){
    var arr=[];
    $(".items li").each(function () {
        arr.push({'m'+$(this).index():$(".txt",this).html()});
        //m0:item1, m1:item2,....
    });
    $.ajax({
         url:'',
         data:arr;//here is problem
    });
});

我正在发送它,但在 saveOrder.ashx 中无法访问它我可以尝试任何替代方法

4

1 回答 1

0

我可能有2个答案:

  1. 将数组包装在 JSON 对象中:

    网址:'',数据:{'arrayofObjects':arr}

  2. JSON.stringify()

    url:'',数据:JSON.stringify(arr)

额外的:

  1. JSON.stringify() + JSON 对象包装

    url:'',数据:JSON.stringify({arrayofObjects:arr})

于 2013-09-26T21:34:05.787 回答