z lewej strony mam tabelkę z imionami i nazwiskami ludzi, np.
obok tego mam małą planszę, w której po pobraniu danych z bazy umieszczam ludzi. Wygląda to tak:
(ludzi jest więcej, dałem dwóch tylko pokazowo)
Przenoszenie między zawodnikami oraz z listy po lewej na miejsce po prawej fajnie mi działa, jednak chcę sobie zrobić coś takiego, że jeśli zamienię PO PRAWEJ STRONIE, na planszy Cyryla na miejsce Karola to żeby ta zmiana pokazała mi się na liście. Skrobnąłem taki oto kod:
function change_line_up() { var o_list = new Array(); // stara lista z lewej var n_list = new Array(); // plansza z prawej, na tej podstawie będzie nowa lista o_list[1] = $('table.people1 tbody tr.aa1 td.name').text(); // pobiera mi "Cyryl Wysocki" o_list[2] = $('table.people1 tbody tr.aa2 td.name').text(); // pobiera mi "Karol Kaczmarczyk" n_list[1] = $('table.people2 tbody tr td.bb1 div.ui-droppable span.people-drag').attr('name'); // pobiera mi "Karol Kaczmarczyk" n_list[2] = $('table.people2 tbody tr td.bb2 div.ui-droppable span.people-drag').attr('name'); // pobiera mi "Cyryl Wysocki" for(i=1; i<3; i++) { if(o_list[i] != n_list[i]) { if (i == 1) { $('table.people1 tbody tr.aa1 td.name').html(n_list[i]); } else if (i == 2) { $('table.people1 tbody tr.aa2 td.name').html(n_list[i]); } } } }
no i rodzi się mały problem, bo o ile niektórych ludzi mi przenosi i zmienia pola w liście o tyle innych mi nie aktualizuje na liście (na planszy zamieniają się miejscami). Funkcję wywołuję podczas upuszczania elementu na pole droppable. Pewnie tu leży gdzieś logiczny problem, jednak jeśli sprawdzam sobie tak:
for(i=1; i<3; i++) { if(o_list[i] != n_list[i]) { alert("różnica jest na " + o_list[i]); } }
to po dowolnej zmianie zawodników wyskakuje mi ten komunikat. Na chwilę obecną mam na planszy i liście 6 ludzi. Jeśli zamienię ludzi z pozycji 1 i pozycji 2 to oni się ładnie zamieniają i aktualizują w tabeli (to samo działa w drugą stronę). Jeśli zamienię 2 z 5 to również działa fajnie. Ale jeśli zamieniam już 3 z 4 to nic się nie dzieje na liście. Jeśli zamienię 1 z 6 to aktualizuje się mi tylko pole na liście pod numerem 1 (czyli mam dwóch takich samych ludzi na liście).
Mam nadzieję że dobrze to zobrazowałem. Myślałem że może ma to związek z polskimi znakami diakrytycznymi, jednak chyba nie, bo ludzie 'z ogonkami' w nazwiskach zmieniają się ładnie, a już bez 'ogonków' zmieniają się tylko na planszy.
W czym może tutaj tkwić problem ? Proszę o porady i pomoc.
@edit. poprawa bbcode.