Diskuze: php posledné nastavenia
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Pokud se ti to zobrazí na té samé stránce, kde máš ten seznam, můžeš do každého <input type="checkbox"> vložit ještě atribut checked, podle toho, zda byla ona hodnota odeslána. Níže je příklad.
<input type="checkbox" name="sloupec_dva" <?php if (isset($_POST["sloupec_dva"])) echo "checked"; ?> >
Ověří se, zda byl zakliknut a když ano, tak mu nastaví atribut checked.
Presne niečo také potrebujem. Ďakujem.
A je lepšie takéto veci robiť pomocou POST alebo GET?
Teda vždy sa zobrazí obsah tých stĺpcov, ktoré užívateľ vykliká, ale ak na niečo zabudne, tak musí všetko vyklikať znovu, však. Nepochopil som časť "znovu sa načíta HTML časť".
V každom prípade, ak chceš zamedziť strate údajov, zobraz užívateľovi vyklikané polia aj na vygenerovanej stránke. Údaje o tom, ktoré polia vyklikal získaš tým, že odošle formulár.
Do atribútu action vygenerovaného formulára napíšeš mriežku a celé
spracovanie obalíš podmienkou, ktorá zistí, či bol formulár odoslaný:
HTML:
<form action="#" method="POST">
<checkboxy>
.
.
.
<input type="submit" name="submited" value"Zobraziť">
Spracúvavajúci skript:
if(!empty($_POST['submited'] {
//zvysok skriptu
}
Atribútom name bude potrebné vybaviť aj prvý formulár, aby prešiel podmienkou.
Čo sa týka metódy, záleží od toho, aké údaje sú v databáze. Ak nevadí, že pri kopírovaní adresy si môže iný uživateľ zobraziť údaje niekoho iného (ak to nie je zabezpečené), tak môžeš pokojne použiť metódu GET.
Záleží na tom, co posíláš. Pokud těch sloupců je mnoho, tak použij
POST, pokud máš pár sloupců a chceš, aby to bylo vidět v URL použij GET.
Já bych ale asi použil POST 
Ešte mám jeden problém. Ak si pouzívatel vybere stĺpce, ktoré chce zobraziť a potvrdí svoj výber a následne si klikne podla ktorého stĺpca chce tabulku zoradit tak sa spätné nastavenie zruší.
Inak povedané, zvolí si z 10 stĺpcov 2. Vyobrazia sa mu a následne si zvolí že chce zoradiť tabulku podla prvého stĺpca a potvrdí. Po potvrdení sa opäť zobrazia všetky stĺpce a tabulka sa zoradi podla výberu.
Ouuu no jasne, podla vaších rád už tomu rozumiem, skúsim a dám vedieť,
ďakujem.
Došlo mi to až teraz, ospravedlnujem sa.
Jedná se totiž o dva různé formuláře <form> (zřejmě). Pokud potvrdíš ten druhý, tak se první smaže. Můžeš z nich udělat jeden, s jedním potvrzovacím tlačítkem. Poté tomu tvému selectu nastavíš to samé, jako těm checkboxům.
<select name="order">
<option value="volvo" <?php if (isset($_POST["order"]) AND $_POST["order"]=="volvo") echo "selected" ?> >Volvo</option>
<option value="saab" <?php ... ?>>Saab</option>
<option value="opel" <?php ... ?>>Opel</option>
<option value="audi" <?php ... ?>>Audi</option>
</select>
Akurát neviem ako ošetrím to, keď si používateľ nezvolí žiadny stĺpec, najradšej by som keby sa hned na začiatku zobrazili checkboxi zaškrtnuté a potom si povyškrtával čo nechce.
V tom případě bys mohl upravit ten krátký PHP kód nahoře tak, aby reagoval na to, zda se vůbec nějaké POST odeslalo...
<?php if (isset($_POST["sloupec_dva"]) OR !isset($_POST)) echo "checked"; ?>
Pokud bude POST prázdné (nic se neodeslalo), zaškrtnou se všechny
políčka, jinak to funguje stejně jako předtím 
Toto by se dalo vyřešit i třeba takto:
<?php
function SetCheck($namePost){
if(isset($_POST[$namePost]) OR !$_POST){
echo 'checked';
}
}
A výpis checkboxů by mohl vypadat nějak takto:
<input type="checkbox" name="sloupec_1" <?php SetCheck('sloupec_1'); ?>>
<input type="checkbox" name="sloupec_2" <?php SetCheck('sloupec_2'); ?>>
<input type="checkbox" name="sloupec_3" <?php SetCheck('sloupec_3'); ?>>
<input type="checkbox" name="sloupec_4" <?php SetCheck('sloupec_4'); ?>>
<input type="checkbox" name="sloupec_5" <?php SetCheck('sloupec_5'); ?>>
Zobrazeno 11 zpráv z 11.
