[MySQL][PHP]Jak zapisać kolejność tabeli sortable? |
[MySQL][PHP]Jak zapisać kolejność tabeli sortable? |
24.01.2017, 22:35:19
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 7.01.2017 Ostrzeżenie: (0%) |
Dobry wieczór,
Jestem nowym użytkownikiem a także początkującym w php, chciałbym prosić o poradę jak zapisać kolejność wierszy w tabeli do bazy danych, żeby po kolejnym odczycie ułożone były tak jak je zostawiłem. Każdy <tr> posiada ID który jest ID w tabeli, kolejność jest zapisana w tabeli w kolumnie sort.
ten kod generuje moją tabelkę. Nie mogę zrozumieć, jak przygotować ajax i wysłać dane do php żeby zapisać nową kolejność. |
|
|
25.01.2017, 10:15:31
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) |
Kolejność zapisu tak na prawdę nie ma znaczenia. Przy odczycie po prostu je posortuj "SELECT * FROM ... ORDER BY table.column {rosnąco/malejąco}"
|
|
|
25.01.2017, 21:26:33
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Najpierw musisz wywołać jakoś ajax, a ten będzie wywoływany przy klikaniu strzałek /\ \/, trzeba więc tam podpiąć zdarzenia na click.
Kiedy sortujesz w górę, to ustawiasz dla rekordu wyżej klucz sortowania jak obecny, a obecnemu klucz sortowania z tego wyżej. Analogicznie przy sortowaniu w dół. Czyli zamieniasz klucze dwóch sąsiadujących rekordów. Sąsiada nad i pod znajdziesz sortując ASC lub DESC rekordy i wybierając jeden rekord gdzie klucz sortowania > lub < klucz sortowania sortowanego rekordu. -------------------- |
|
|
26.01.2017, 22:24:09
Post
#4
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 7.01.2017 Ostrzeżenie: (0%) |
Chyba prawie sobie poradziłem ale .... nie do końca bo:
Kiedy przesunę rząd np z początku na koniec tabelki zapisany porządek w DB jest jakby niepoprawny i kiedy odświeżę stronę rząd który powinien być "teoretycznie" ostatni magicznie jest pierwszy, a czasem nawet drugi i nic mi się nie zgadza Już praawie wszystkie włosy sobie wyrwałem z głowy, tak mnie to irytuje generuję nowy porządek w ten sposob:
Nie wiem gdzie tkwi problem. Zapisuje dane w ten sposób:
Podpowiedzcie gdzie zrobiłem błąd, nie rozumiem dlaczego mimo, iż porządek jest generowany i widzę go w konsoli gdzie wygląda prawidłowo. Ten post edytował Laravelson 26.01.2017, 22:27:02 |
|
|
27.01.2017, 11:32:41
Post
#5
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Mam bardzo podobny problem, to co jest na ekranie nie oddaje tego co jet przesyłane do php.
Wygląda jakby wysyłany był stan z "przed" wykonania ruchu. np jeśli mam aktualnie 1,2,3 i zmienię 2,3,1 wysyła mi 1,2,3 a jeśli teraz wykonam ponowny ruch na ekranie przeciągając 1 na początek w konsoli widzę 2,3,1, czyli stan przed wykonaniem ruchu |
|
|
27.01.2017, 12:18:44
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Podpowiedzcie gdzie zrobiłem błąd, nie rozumiem dlaczego mimo, iż porządek jest generowany i widzę go w konsoli gdzie wygląda prawidłowo. Czytaj dokumentację. sortable('toArray') domyślnie zwraca listę id elementów. Nawet kiedy podasz jako drugi parametr {attribute:'id'}, to i tak nic nie zmieni, bo wiersze nie mają nadanych id. Tu masz przykład z użyciem innego atrybutu (data-sort). Możesz go zmienić na id (w html, a w js zmienić lub usunąć). https://jsfiddle.net/khzcn586/ -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 5.06.2024 - 08:41 |