jQuery可排序添加额外信息

时间:2013-11-20 00:31:56

标签: javascript php jquery html jquery-ui-sortable

我有一个li列表,我通过jQuery对其进行了排序。我需要为此序列化数据添加一些隐藏值,以确保更新到达正确的位置。

我该怎么做?

HTML

<ul id="reportNav">
  <li id=page_1>Page 1</li>
  <li id=page_2>Page 2</li>
  <li id=page_3>Page 3</li>
  <li id=page_4>Page 4</li>
  <li id=page_5>Page 5</li>
  <li id=page_6>Page 6</li>
</ul>

JS

$("#reportNav").sortable({
    stop : function(event, ui){
    var url = "/pages/saveOrder.php";
      $.ajax({
         type: "POST",
         url: url,
         data: $(this).sortable('serialize');,
         success: function(data) { alert(data); },
         error: function(data) { alert("Failure"); }
       });
     }
});

输出数据: page[]=1&page[]=2&page[]=3&page[]=4&page[]=5&page[]=6

我需要添加的数据: HTML中的特定reportID

3 个答案:

答案 0 :(得分:1)

所以,只需添加$(this).sortable('serialize')+"&reportId="+$("#reportId").text() http://jsfiddle.net/8BAW3/

即可

或者举例说明如果不是这样你想要达到什么目的。

答案 1 :(得分:1)

这已经过时但是如果有人看到这个需要添加更多数据,您可能会将数据属性更改为:

$.ajax({
     type: "POST",
     url: url,
     data: {
         data: $(this).sortable('serialize'),
         foo: 'bar',
         bar: 'blubb'
     },
     success: function(data) { alert(data); },
     error: function(data) { alert("Failure"); }
   });

在提交ajax请求的任何地方var_dump($_POST)查看/查找数据。

答案 2 :(得分:1)

您只需将参数作为文本附加到数据部分( +&#39;&amp; param = value&#39; )。也可以为您的变量更改字符串。

        $.ajax({
            data: data+'&param=value',
            type: 'POST',
            url: '/yourFile.php'
        });