Autor Zpráva
peterko74
Profil
Zdravim.
Potreboval by som pomoct s takymto problemom: Na nasej obecnej stranke (http://www.rakovo.sk/zmluvy.html) pridávam zmluvy a faktury. Uz teraz je ten zoznam dlhy, nechcem vidiet co budu za par rokov. Hladal som nejake rozumne riesenie, ako by som zobrazil len urcity pocet poloziek, ostatne by boli "ukryte". Nieco, ako napr. vysledok vyhladavania v Google alebo napriklad aj tu zoznam diskusii. Ale aby vsetky polozky boli nadalej "sortovatelne". (Zatial mam "sortovatelny" len rok 2013.)
Vopred vdaka za pomoc.
Monkeys
Profil *
Ak ukladate do databyzi zacnite pouzivat strankovanie.
Ak ukladate do XML tak vam nato staci kod v PHP cca na 4 riadky.

M.
peterko74
Profil
Ukladam v HTML, v tom to nepojde? Monkeys, vedel by si mi tie 4 riadky napisat?
Kcko
Profil
peterko74:
Půjde napsat i v javascriptu (snáž v jQuery)
http://neoalchemy.org/tablePagination.html
Monkeys
Profil *
peterko74:
Ukladam v HTML

HTML je len znackovaci kod nic neuklada!

M.
peterko74
Profil
Monkeys:
HTML je len znackovaci kod nic neuklada!


A ja som len lama co sa tvorby webu tyka. Dostal som sa k tomu ako slepy k husliam a snazim sa to trochu vylepsit, tak si v diskusiach a navodoch nieco najdem a potom to skusam. Toto bolo nad moje sily. Teraz ste mi dali nejake tipy, mozem hladat a skusat dalej. Skuste si ma predstavit tak, ze vecer odstavim traktor a sadam za PC aby som spravoval obecnu stranku. Chcem tym povedat, ze za kazde polopatisticke vysvetlenie, pripadne nasmerovanie na stranku kde sa pise cesky alebo slovensky Vam budem velmi vdacny.
Kcko
Profil
peterko74:
Ok, tak jsem Ti poradil co máš hledat plus link, když tohle nebude vyhovovat, tak hledej něco podobného. Pro tvoji potřebu se mi to zdá nejsnažší a nejúčelnější.
Monkeys
Profil *
peterko74:
tak napriklad struktura XML suboru:

XML:
<?xml version="1.0" encoding="utf-8"?>
<root>
<item page="1" subor="cesta k suboru" menoSuboru="Meno suboru"  title="titulok suboru" />
<item page="2" subor="dalsia cesta k suboru" menoSuboru="Meno dalsieho suboru"  title="dalsi titulok suboru" />
....
</root>

Vypis do tabulky v PHP:
$dom = simplexml_load_file(tvoj_xml_subor.xml");
$limit = 12;
$page = (empty($_GET['strana'])) ? 1 : $_GET['strana'];

$i=0;
echo "<table><tr>";
foreach ( $dom->item as $item ) {
if ($item->attributes()->page > ($page-1)*$limit && $item->attributes()->page <= (($page-1)*$limit)+$limit ){
echo '<td><a  href="cesta k tvojmu suboru/" . $item->attributes()->subor.'" title="'.$item->attributes()->title.'"> '. $item->attributes()->menoSubori.'</a></td>';
}
}
echo '</tr>';
?>
</table>

strankovanie v PHP:
echo '<div class="cislovanie">';
for($i=1; $i <= ceil(count($dom->item) / $limit); $i++){
echo '<a href="'.URL.'tvojaStranka?strana='.$i.'" title="Ďalšia strana">'.$i.'</a>';
}
echo '</div>';

Nezabudni si ostylovat triedu cislovanie

Este musis vymyslet ako tie data budes ukladat do xml ale to uz ti nepoviem :)
Bud si to pis rucne alebo skus hladat. Urcite nieco najdes.
Ani ja neviem vsetko :)

M.


$i=0; -> to si vyhod to tam nema byt to som pouzil na nieco ine.
a tiez URL v odkazoch na dalsiu stranu si nahrad absolutnou adresou.

M.
peterko74
Profil
Páni, fakt ste zlatí, viem že to myslíte dobre, ale neskutočne preceňujete moje schopnosti.
To čo napísal "Monkeys": pozerám na to, ako to prasa čo chováme pre pána pecedu, ale neviem z ktorej strany sa do toho mám pustiť.
A to čo mi poradil "Kcko": to vyzera schodnejšie, ale všade samá angličtina, a tou sa ja neprehryziem. Aj som posťahoval nejake JS, aj som nejaké kódy dal na stránku, ale výsledok žiadny.
Majte so mnou, prosím, trochu trpezlivosti a zhovievavosti a skúste mi to ešte polopatistickejšie, pekné prosím.
tiso
Profil
peterko74: vráťme sa kúsok späť: pre teba ideálne riešenie je nechať na tejto stránke len zmluvy za aktuálny rok a ostatné presunúť na samostatné stránky podľa roku. Pod zmluvy by si pridal zoznam odkazov na tieto jednotlivé stránky.
Kcko
Profil
peterko74:
Tady máš špagheti hnusný kód, který jsem ted za 15 min vyfikl, není skutečně nic moc, leč se zdá, že funguje.


Ukázka:
http://sandbox.rjwebdesign.cz/strankovani-tabulka/

Narvi si to do hlavičky (tag HEAD)

<!-- 
    ZACATEK KODU PRO STRANKOVANI TABULKY
-->

<style>
    .pager .active
    {
        color: red !important;
    }
</style>

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
    $(function(){
    

        var paginator = function(pages)
        {
            
            var html = '';
            for (var i = 1; i <= pages; i++)
            {
                if (i == 1)
                {
                    html += '<a href="javascript:;" data-pager="'+i+'" class="active">'+i+'</a> ';
                }
                else
                {
                    html += '<a href="javascript:;" data-pager="'+i+'">'+i+'</a> ';
                }
            }

            return html;
        }

        var limit = 5;


        $("#corecenter table").each(function(index){

            var $table = $(this);
            var $rows  = $table.find("tr");
            
            $rows.css("display", "none");
            $rows.eq(0).css("display", "");
            $rows.slice(1, limit + 1).css("display", "");


            var $pages = Math.ceil(($rows.length - 1) / 5);


            $table.after('<p class="pager">' + paginator($pages) + '</p>');


        });


            $("#corecenter .pager a").click(function(e){

                
                e.preventDefault();
                var $this = $(this);
                var $n = $(this).data("pager");
                var $table = $this.parent().prev("table");
                var $rows  = $table.find("tr");

                var $start, $end;

                $start = ($n * limit) - limit + 1;
                $end   =  $n * limit + 1;

                $rows.css("display", "none");
                $rows.eq(0).css("display", "");

                $rows.slice($start, $end).css("display", "");

                $this.siblings().removeClass("active").end().addClass("active");


            });

    });
</script>

<!-- 
    KONEC KODU PRO STRANKOVANI TABULKY
-->
peterko74
Profil
tiso: Bolo by to jednoduchšie ako píšeš, ale ja (my ako v obci) chceme viac, preto to chcem takto.


Kcko: Tak ten kód je megahustý - za 15 minút by som teraz v zime nedokázal ani traktor naštartovať, a nie totok napísať. Veľmi moc Ti ďakujem v mene svojom i celého obecného zastupiteľstva. Keď pôjdeš niekedy náhodou okolo tak sa zastav, odmena Ťa neminie (vrece zemiakov a čestné občianstvo v obci). Len by som mal ešte dve otázky: Kde zmením, aby sa mi na stránke zobrazovalo viac zmlúv? (Na to možno prídem aj sám, ale pre istotu..) A druhá: v tej tabuľke mám že sa dá "sortovať" podľa obsahu (cena, dátum, zmluvný partner...). Teraz sa to sortovanie uplatňuje len na aktuálne zobrazených zmluvách, ale ja by som chcel, aby sa to týkalo všetkých zmlúv, aj tých, ktoré momentálne nevidno - dalo by sa to? Dúfam, že Ťa tým moc neotravujem...
Kcko
Profil
peterko74:
vrece zemiakov a čestné občianstvo v obci :D ok beru.

Je tam parametr var limit = 5; tak si ho nastav jak potřebuješ.

To sortování asi takhle nepůjde, nevšiml jsem si, že tam máš nějaký přídavný plugin. Můžu se ještě podívat po jiném řešení (a naimplementovat to tam).
Ten můj kód je velmi jednoduchý a s tím pluginem co tam máš není kompatibilní, já se Ti do konce týdne po nějakém řešení podívám.
peterko74
Profil
Kcko:
Dík, ten počet riadkov som už našeil. Takto nejako by som si to predstavoval:

http://www.rakovo.sk/zmluvy2.html

Teda všetky roky dokopy, aby sa v tom dalo dobre vyhľadávať. Ešta raz dik za ochotu.
Kcko
Profil
peterko74:
No tak moment, ted tomu nerozumím, koukám, že to řazení funguje ... v čem je tedy problém, nebo co chceš?
A ještě si uprav toto

var $pages = Math.ceil(($rows.length - 1) / 5);
na
var $pages = Math.ceil(($rows.length - 1) / limit);
_es
Profil
peterko74, Kcko:
Riešenie v [#11] má nevýhody:
- funkčnosť stránky so zmluvami je výrazne závislá od zapnutia/funkčnosti JS.
- Pri funkčnom „stránkovaní“ je problém niečo vyhľadať pomocou vyhľadávania v texte stránky. Ono to tam však je, len cez JS skryté.
Buď by sa tam zišlo dorobiť funkciu „(ne)zobraziť všetky zmluvy“, alebo to spraviť úplne inak, napríklad spraviť „stránkovanie“ bez JS, pomocou odkazov na záložky.
peterko74
Profil
Kcko:
No tak moment, ted tomu nerozumím, koukám, že to řazení funguje ... v čem je tedy problém, nebo co chceš?
Problém je v tom, že radenie funguje len v aktuálne zobrazenych. Napr: som na prvej strane, dám si zmluvy zoradiť podľa ceny, tak mi zoradí len tie ktore vidím, aj keď na ďalších stranách sú aj väčšie sumy.
peterko74
Profil
Momentalne to vyzera takto:

http://www.rakovo.sk/zmluvy.html

Bol tam problem, ze ten JS zle radil kolonky s datumom a s €, to uz je urobene, uz len to radenie v celom rozsahu a mas dve vrecia zemiakov :-)
Kcko
Profil
peterko74:
No začíná z toho býti nějaká džungle, což takhle si tam nahodit ozkoušený plugin http://tablesorter.com/docs/example-pager.html ? (řazení + stránkování), dle examplu to bude jednoduché.
Nebo to udělat pomocí PHP viz přípomínka od _es


Pokus se to naimplementovat sám, v případě PHP Ti pomůžu.
peterko74
Profil
Kcko:
Skúsiť to možem s tým "tablesorter", za to nič nedám. Problém ale vidím v jazykovej bariére. V prípade PHP by som nevedel ani zaťať, neviem či by som sa dokázal pohnúť aj s tvojou pomocou na diaľku.

Pripomienka od _es: má pravdu, ale v rámci našich možností je toto čo zatiaľ máme postačujúce, čo sa zverejňovanie zmlúv týka - mnohé menšie mestá to majú ešte úbohejšie.
lorin
Profil
peterko74:
má pravdu, ale v rámci našich možností je toto čo zatiaľ máme postačujúce, čo sa zverejňovanie zmlúv týka - mnohé menšie mestá to majú ešte úbohejšie.
Když už něco dělám, tak pořádně, ne?
Kcko
Profil
peterko74:
To PHP napíšu hned, zjisti si zda tam máš podporu PHP (5+).

Tu tabulku si můžeš ukládat klidně do textového souboru např.

Název souboru | cena | odkaz na PDF | dalsí sloupeček
Název souboru | cena | odkaz na PDF | dalsí sloupeček
Název souboru | cena | odkaz na PDF | dalsí sloupeček
Název souboru | cena | odkaz na PDF | dalsí sloupeček
Název souboru | cena | odkaz na PDF | dalsí sloupeček


S tím se pak dá pracovat v pohodě.
peterko74
Profil
Kcko:
Máme tam PHP 5.2. Mysliš, že to bude lepšie, ako to čo teraz máme? Bude s tým síce trochu práce, všetko presypať do toho textového súboru, ale ak to bude lepšie a my si tým pomôžeš tak by som do toho šiel.
Kcko
Profil
peterko74:
Nebude s tím vůbec žádný problém, na to jsou nástroje, večer mám ještě nějakou jinou [placenou] práci, když nebudu KO tak se na to podívám, nebo přes víkend. Pak se ozvu.
Zatím naškrábej zemiaky na hranolky.
peterko74
Profil
Kcko:
Zatím naškrábej zemiaky na hranolky.

Ok. A chceš ich s kečupom alebo s tatarkou..? ;-)
peterko74
Profil
Kcko:
Pak se ozvu.
Ja len, či si na mňa nezabudol, a či Ti nemám tie hranolky ohriať..?
Kcko
Profil
peterko74:
Tak napůl, o vík jo, nestíhal jsem :/
peterko74
Profil
ok

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: