IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: rozdelenia uzivatelov z db na jednej stranke

Aktivity
Avatar
Rastislav Kopál:9.10.2017 14:09

Zdravím, mám takú otázku, ako to najlepšie spraviť,bez presmerovania na iné stránky.
Mám stránku, kde zobrazujem zaregistrovaných užívatelov, chcem tam mať tlačídla, ktoré mi roztriedia daných zaregistrovaných užívatelov napr(Tréneri,mu­ži,ženy) a po kliknutí na dané tlačídlo sa mi zobrazia užívatelia, ktorí patria do danej skupiny.
Nejako takto

 <a href="treneri" target="iframe_s">TRENERI</a>
<a href="muzi" target="iframe_s">MUZI</a>

 <iframe name="iframe_s"><?= $uzivatelia ?></iframe>

Takto nejako si to predstavujem, budem rád, ak mi poradíte, akým spôsobom je to najvhodnejšie.

Odpovědět
9.10.2017 14:09
"Make Things As Simple As Possible, But Not Simpler." - Albert Einstein
Avatar
Lasvit
Člen
Avatar
Lasvit:9.10.2017 14:32

Tvoje řešení se dá vyřešit za pomoci PHP třeba takto https://www.itnetwork.cz/…dani-stranek

Jednoduše
Pokud si začátečník tak si udělej x souborů a v nich tmp podle požadavku (jako v seriálu na který jsem odkázal)

Jinak se to dá jednoduše vyřešit pomocí AJAX + API

 
Nahoru Odpovědět
9.10.2017 14:32
Avatar
Odpovídá na Rastislav Kopál
Ján Timoranský:9.10.2017 14:36

Ja by som to riešil úplne inak. Buď by som si to linkoval ako get parameter, napr:

<a href="stranka.php?uziv=treneri">TRENERI</a>

Následne by som v kóde zobrazil užívateľov podla parametru.

Alebo by som si vypísal všetkých užívateľov naraz a javascriptovo ich schovával/zobra­zoval.

Iframe určite nie, to je podľa mňa rakovina zdarma, lebo obsah samotný už nevieš po načítaní webu meniť, respektívne modifikovať, čo postráca akúkoľvek logiku tvorby webu. Iframe jedine na bannery, reklamy a iné záležitosti. Aspoň podľa mňa.

Nahoru Odpovědět
9.10.2017 14:36
Find what you love and let it kill you.
Avatar
Jirka Jr
Člen
Avatar
Odpovídá na Rastislav Kopál
Jirka Jr:10.10.2017 16:56

pokud nechces, aby se po stisknuti tlacitka znovu nacitala cela stranka, tak

bud frameset + 2 framy

nebo pres ajax (treba jquery je na takto jednoduchou stranku idealni)

tady je hruby priklad pro obe reseni:


Frameset reseni:


index.html:

<FRAMESET rows="20%, 80%">
        <FRAME name="tlacidla" src="tlacidla.html">
        <FRAME name="osoby" src="osoby.php?typ=vsichni">
</FRAMESET>

tlacidla.html:

<a href="osoby.php?typ=treneri" target="osoby">Treneri</a>
<a href="osoby.php?typ=muzi" target="osoby">Muzi</a>
<a href="osoby.php?typ=zeny" target="osoby">Zeny</a>
<a href="osoby.php?typ=vsichni" target="osoby">Vsichni</a>

osoby.php:

<?php
     switch($_GET['typ']) {
         case 'treneri':
                // tady bude kod pro vypsani treneru
                echo 'treneri';
                break;
         case 'muzi':
                // tady bude kod pro vypsani muzu
                echo 'muzi';
                break;
         case 'zeny':
                // tady bude kod pro vypsani zen
                echo 'zeny';
                break;
         case 'vsichni':
         default:
                // tady bude kod pro vypsani vsech
                echo 'vsichni';
                break;
     }
?>

jQuery reseni


index.html:

<div>
        <a href="#" id="btn_treneri">Treneri</a>
        <a href="#" id="btn_muzi">Muzi</a>
        <a href="#" id="btn_zeny">Zeny</a>
        <a href="#" id="btn_vsichni">Vsichni</a>
</div>

<div id="osoby">
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script>
        $(document).ready(function(){
                $('#btn_treneri').click(function(){
                        $('#osoby').load('osoby.php?typ=treneri');
                });
                $('#btn_muzi').click(function(){
                        $('#osoby').load('osoby.php?typ=muzi');
                });
                $('#btn_zeny').click(function(){
                        $('#osoby').load('osoby.php?typ=zeny');
                });
        });
</script>

osoby.php

<?php
     switch($_GET['typ']) {
         case 'treneri':
                // tady bude kod pro vypsani treneru
                echo 'treneri';
                break;
         case 'muzi':
                // tady bude kod pro vypsani muzu
                echo 'muzi';
                break;
         case 'zeny':
                // tady bude kod pro vypsani zen
                echo 'zeny';
                break;
         case 'vsichni':
         default:
                // tady bude kod pro vypsani vsech
                echo 'vsichni';
                break;
     }
?>
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
10.10.2017 16:56
Avatar
Odpovídá na Jirka Jr
Rastislav Kopál:10.10.2017 17:01

Áno, to je presne to čo som chcel , ďakujem ! :-)

Nahoru Odpovědět
10.10.2017 17:01
"Make Things As Simple As Possible, But Not Simpler." - Albert Einstein
Avatar
Jirka Jr
Člen
Avatar
Odpovídá na Jirka Jr
Jirka Jr:10.10.2017 17:03

Poznamka 1:

mozna bude u frameset reseni potreba do osoby.php pridat nejake to cache prevention, aby se obsah dostal az do prohlizece pri opravdu kazdem stisknuti tlacitka ... nemam s tim az takovou zkusenost

kdyby bylo potreba, tak na zacatek osoby.php pridat jeste toto:

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Poznamka 2:

jak uz psal Ján Timoranský , u iframe ztracis moznost zasahovat do nej javascriptem ze stranky, ve ktere je zobrazen

u klasickych framu zasahovat lze ... viz treba tady:
https://stackoverflow.com/…g-javascript

 
Nahoru Odpovědět
10.10.2017 17:03
Avatar
Jirka Jr
Člen
Avatar
Odpovídá na Rastislav Kopál
Jirka Jr:10.10.2017 17:03

rado se stalo :-)

 
Nahoru Odpovědět
10.10.2017 17:03
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.