2010-03-24 10 views
6

Mając nadzieję, że używając czegoś podobnego do tego demo, możliwe jest przeciąganie elementów wewnątrz i między dwiema kolumnami i aktualizowanie ich kolejności na żywo lub za pomocą przycisku "zapisz" do MySQL. Oznacza to, że możesz wprowadzić zmiany i wrócić do strony później, aby wyświetlić lub zaktualizować swoje zamówienie.jQuery Connected Sortable Lists, Save Order to MySQL

http://pilotmade.com/examples/draggable/

robi to tylko jedna kolumna jest w porządku, ale gdy próbuję przekazać kolejność obu kolumnach, problem wydaje się być przechodzącej wielu odcinkach tablic z jQuery do PHP/MySQL aktualizacji skryptu.

Każdy wgląd byłby mile widziany.

Jeśli spojrzeć poniżej, chcę przekazać słownie ...

sortable1
entry_1 => 0
entry_5 => 1

sortable2
entry_3 => 0
entry_2 => 1
entry_4 = > 2

EDIT: To okazało się robi trick

HTML

<ol id="sortable1"><li id="entry_####">blah</li></ol> 

jQuery

<script type="text/javascript"> 
$(function() 
{ 
    $("#sortable1, #sortable2").sortable(
    { 
     connectWith: '.connectedSortable', 
     update : function() 
     { 
      $.ajax(
      { 
       type: "POST", 
       url: "phpscript", 
       data: 
       { 
        sort1:$("#sortable1").sortable('serialize'), 
        sort2:$("#sortable2").sortable('serialize') 
       }, 
       success: function(html) 
       { 
        $('.success').fadeIn(500); 
        $('.success').fadeOut(500); 
       } 
      }); 
     } 
    }).disableSelection(); 
}); 

To kwerendy PHP za

parse_str($_REQUEST['sort1'], $sort1); 
foreach($sort1['entry'] as $key=>$value) 
{ 
do stuff 
} 
+0

widzimy kod, dzięki czemu możemy zobaczyć, gdzie poszło źle? – mcgrailm

+0

Edytowałem, aby pokazać kod jQuery & html. Domyślam się, że moje pytanie jest naprawdę o tym, jak przekazać zserializowane dane do skryptu wstawiania/aktualizacji php. – noahkuhn

+0

gdzie dokładnie masz problem z serializacją danych, które nie są sformatowane w prawo lub czy nie wiesz, jak umieścić opublikowane dane w bazie danych? – mcgrailm

Odpowiedz

7

co chciałbym zrobić, to podzielić je

data : 
    { 
     sort1:$('#sortable1').sortable('serialize'), 
     sort2:$('#sortable2').sortable('serialize') 
    } 

wtedy kiedy piszesz można ge t żądanie i ustawić je w razie potrzeby, mam nadzieję, że sens

więc to, co robię jest to

parse_str($_REQUEST['sort1'],$sort1); 

foreach($sort1 as $key=>$value){ 
    //do sutff; 
} 
+0

ma to sens, proszę odpowiedzieć na powyższe pytanie dotyczące mojego problemu. Zgaduję, że teraz wiem, że mogę podzielić podzielone dane na dwa segmenty, czy teraz są one przekazywane jako $ _POST ['sort1'] i $ _POST ['sort2' ]? "Myślę", jeśli to działa, powinienem wszystko ustawić. Dziękuję za szybką odpowiedź. – noahkuhn

+0

yes id does, happy to help 8 ^) – mcgrailm

+0

Jedno ostatnie pytanie ... to poprawna pętla do pobrania wartości tablic do wstawienia do db: foreach ($ _ POST ['sort1'] jako $ key => $ value) {do this} Pomyślałem, że rozumiem, jak to powinno działać ... – noahkuhn