Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Mechanizm zmiany kolejności elementów., Strzałka w góre i w dół a po kiknięciu zmieniamy kolejnosć.
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


lWitam.

Zastanawiam się nad mechanizmem, który za pomoca strzałek (góra, dó) pozwoli na zmianę kolejności klikanego elementu.

Przykładowo mamy taką baze MySQL:

  1. ID, NAZWA, KOLEJNOSC
  2.  
  3. 1, Wpis a, 0
  4. 2, Wpis b, 0
  5. 3, Wpis c, 0
  6. 4, Wpis d, 0
  7. 5, Wpis e, 0


Problemem jest to, że jest tutaj dwa wyjątki:
1. Pozycje z bazy moga być kasowane i powstaja luki w kolejności.
2. Baza może być ręczniewedytowana i chciałbym, żeby skrypt działa wtedy poprawnie.


Jak rozplanowac taki mechanizm w php? Kiedyś kiedys robiłem coś takiwego, jednak bywało, że skrypt źle działa i zrezygnowałem z tego.

Prosze o podpowiedzi, ewentualnie jakiś namiar na funkcje.

Pozdr.

Ten post edytował kukix 8.08.2013, 00:21:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Lukami w kolejności się nie przejmuj. Z bazy odczytujesz z ORDER BY kolejnosc ASC i żadne luki temu nie przeszkadzają.

Co to znaczy, że baza będzie zarządzana ręcznie? Czy w grę wchodzi też ręczne wstawianie rekordów? Jeśli tak, to najlepiej zrobić jakieś luki w mechanizmie zapisującym, np. co 10. Ja najbardziej lubię tego typu mechanizmy robić w ten sposób, że mam listę elementów i każdy z nich zawiera input hidden będący tablicą, np. "elements[]" (te nawiasy na końcu są ważne). W JavaScripcie sobie zmieniasz kolejność, a do PHP przesyłają się po kolei. I potem już z górki, robisz np. tak:
  1. $step = 10;
  2. $order = 0;
  3. foreach($_POST['elements'] as $id) {
  4. $order += $step;
  5. // UPDATE tabela SET kolejnosc = $order WHERE id = $id
  6. }
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 8.08.2013, 09:05:47 ) *
Co to znaczy, że baza będzie zarządzana ręcznie? Czy w grę wchodzi też ręczne wstawianie rekordów? Jeśli tak, to najlepiej zrobić jakieś luki w mechanizmie zapisującym, np. co 10. Ja najbardziej lubię tego typu mechanizmy robić w ten sposób, że mam listę elementów i każdy z nich zawiera input hidden będący tablicą, np. "elements[]" (te nawiasy na końcu są ważne). W JavaScripcie sobie zmieniasz kolejność, a do PHP przesyłają się po kolei. I potem już z górki, robisz np. tak:



bardzo ciekawy pomysł.
Zastanawiam się, jakiego mechanizmu Javascript użyc do zmiany kolejości elementów DIV.

Czy jQuery dysponuje jakimiś mechanizmami, kóre by na to pozwalały?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 06:04