Autor Zpráva
ZbySTr
Profil *
mám takovou věcičku nad kterou už přemýšlím delší dobu a nenapadá mě nějaké rozumné řešení.

mám např. položky

položka 1
položka 2
položka 3
...

ty jsou uložené v databázi
sloupce v tabulce by mohli vypadat třeba takto id, text, poradi,.....;


a já bych potřeboval, aby se zobrazovali v pořadí podle toho, jak si nastaví uživatel.
jedna z možností by bylo nastavovat každé položce tzv. váhu pomocí input(text), ale to se mi nezdá zrovna nejlepší řešení.

ideální by bylo, aby každá položka v administraci měla šipku nahoru/dolu a po kliknutí by se přesunula nahoru/dolů.

bohužel mě nenapadá jak na to.
Asi to nebude nic zas tak těžkého, jenom není nápad.

Díky moc za každou radu.

ZbySTr
llook
Profil
Nahoru se posouvá tak, že si záznam vymění pořadí s nejbližším nadřazeným záznamem. A dolu s podřazeným záznamem.
function nahoru($zaznam) {

$nadrazeny = $db->getRow(
"SELECT id, poradi FROM tabulka WHERE poradi < $zaznam[poradi] ORDER BY poradi DESC"
);
$db->exec("UPDATE tabulka SET poradi=$zaznam[poradi] WHERE id=$nadrazeny[id];");
$db->exec("UPDATE tabulka SET poradi=$nadrazeny[poradi] WHERE id=$zaznam[id]");
}

Tahle funkce samozřejmě fungovat nebude, ale snad to naznačí směr k řešení.
Tomik
Profil
Možná by bylo elgantnější to řešit pomocí AJAX, avšak nenapadá mě řešení, možná někdo z diskutujících, kdo je zaběhlejší v AJAXu poradí.
Ale idea by byla tato: uživatele klikne na tlačítko (nahoru, dolu) zavolá se ajaxová fce, která změní pořadí prvku v tabulce a zároveň pošle signál serveru, že má změnit údaj v mysql, vše tedy probíhá bez refreshe.
Hugo
Profil
Příspěvek jsem smazal, protože jsem zjistil, že je to blbost (to je tak, když někdo nečte pořádně :-)).
ZbySTr
Profil *
Díky za odpovědi (llook) ......

ZbySTr
Toto téma je uzamčeno. Odpověď nelze zaslat.

0