Prohazování prvku na stránce
- darthcz
- Člen | 113
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
„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
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.