Ich habe eine li Liste, die ich über jQuery sortierbar gemacht habe. Ich muss diesen serialisierten Daten einige versteckte Werte hinzufügen, um sicherzustellen, dass das Update an der richtigen Stelle durchgeführt wird.

Wie würde ich das machen?

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"); }
       });
     }
});

Ausgegebene Daten: page[]=1&page[]=2&page[]=3&page[]=4&page[]=5&page[]=6

Daten, die ich hinzufügen muss: Spezifisches reportID, das sich im HTML befindet

0
bryan 20 Nov. 2013 im 04:31

2 Antworten

Beste Antwort

Fügen Sie es einfach hinzu $(this).sortable('serialize')+"&reportId="+$("#reportId").text() http://jsfiddle.net/8BAW3/


Oder geben Sie ein Beispiel dafür, was Sie erreichen möchten, wenn dies nicht der Fall ist.

1
mdolbin 20 Nov. 2013 im 00:41

Dies ist alt, aber wenn jemand, der dies betrachtet, weitere Daten hinzufügen muss, ändern Sie das Datenattribut wahrscheinlich in Folgendes:

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

Führen Sie ein var_dump($_POST) an, wo immer Sie die Ajax-Anfrage senden, um die Daten zu sehen / zu finden.

1
caramba 11 Apr. 2016 im 14:46