Prohazování prvku na stránce

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
darthcz
Člen | 113
+
0
-

Dobrý den,

chtěl bych se zeptat, jak lze nějak efektivně prohazovat pořadí prvků na stránce.

Řekněme, že mám pod sebou v řádcích názvy skupin a v databázi u každého názvu uloženo pořadí. Potřeboval bych, aby u názvu skupiny byl asi nějaký input a za ním šipička nahoru nebo dolu. Po vyplnění čísla o kolik a kliknutí na příslušnou šipičku by se mělo vzít pořadí položky v db a dle čísla posunu posunout všechny odpovídající záznamy.

Což mi ale v případě, že položka je na pozici 25 a zadám číslo 24 nahoru, aby byla položka na pozici 1, donutí databází přepsat 24 záznamů v databázi (změnit jejich pořadí o jedničku dolu). Což mi nepřijde moc efektivní :(

Chtěl jsem to dělat pomocí handle, ale nějak nevím, jak u handle předat příslušné číslo přes input nebo něco tak, aby to nemusel být formulář…

Za jakoukoli radu budu velice vděčný.

newPOPE
Člen | 648
+
0
-

„http://jqueryui.com/demos/sortable/:http://jqueryui.com/demos/sortable/

trocha sa s tym pohraj a urcite to vyriesis, btw neviem ci bez prepisania nejakeho poradia v DB to nejak vyriesis (riesim to stlpcom order, ano prepisujem potom kazdy zaznam po update poradia) este ma napada nejaka vaha jednotlivych zaznamov ale to je take vselijake ;-)

Mikulas Dite
Člen | 756
+
0
-

jQuery sortable ti taky určitě doporučím. Z něj získáš řadu záznamů, tedy třeba 12,15,7,4,9 a pomocí iterace získáš pořadí jako klíč. Tohle znamená, že budeš mít jeden sql update.

Implementace bez JS se dá udělat buď pomocí stejného handleru, tzn. budeš muset dopočítat tu řadu v php (místo v js) z toho, že dostaneš posun ±1 u daného id (tedy potřebuješ jeden sql select) a poté zase sql update.

darthcz
Člen | 113
+
0
-

jo, tímhle to půjde :) Děkuji moc :)