Diskuze: Otevření JS okna po reload
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 10 zpráv z 10.
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í JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


To sice ano, ale háček je v tom, že potřebuji otevřít colorbox okno s parametry, které jsou definované v class=ajax. A to je to co se mi nedaří.
V podstatě po reloadu potřebuji základním souboru vědět že došlo k reloadu z file.php s id tím a tím a otevřít znovu:
<a class="ajax" href="file.php?id=<?php echo $id; ?>">Nové okno</a>
Už rozumiem... A čo znamená "dať vedieť"? Čo sa má stať v tom základnom súbore?
Ze základního souboru otevírám myší pomocí odkazu ( class="ajax"...) colorbox okno, které načte další soubor file.php. V něm změním data pomocí ajaxu, tedy opět něco podobného, abych nemusel přesměrovávat a zapsal při onchange inputu data do DB. Po změně, se provede location.reload(); což provede reload základního souboru a poté potřebuji opět otevřít ten odkaz.
Tedy mu říct, aby po reloadu věděl, že došlo k reloadu, protože při načtení základního souboru se nesmí nic otevřít, až při kliknutí. Pokud došlo k reloadu, tak mu říct, že je potřeba otevřít soubor class=ajax...
Doufám, že jsem to napsal srozumitelně.
Vlastne ... nech už robíš čokoľvek, asi hľadáš toto:
performance.navigation.type // ak nastal reload
? opener.$(element).metoda() // vyber element v parentovi a niečo s ním urob
: null // inak neurob nič, prípadne čokoľvek iné
Nakonec jsem to vyřešil takto:
$(document).ready(function() {
<?php
if($_SESSION['o'] == "ano"){
$id = $_SESSION['id'];
?>
$("#o<?php echo $id; ?>").trigger("click");
<?php
}
?>
});
asi to není nejčistší... Jak by to vypadlo v případě tvého řešení?
performance.navigation.type // ak nastal reload
? opener.$(element).metoda() // vyber element v parentovi a niečo s ním urob
: null // inak neurob nič, prípadne čokoľvek iné
Úprimne? Hlavne by som to nerobil tak, ako to skúšaš. Veď v tom súbore update.php kde vykonávaš SQL update príkaz, zároveň pošli do prehliadača odpoveď s novým počtom. Veď to AJAX volanie doslova čaká nejakú odpoveď... Takže riešenie je zhruba takéto: v update.php pridaj header 'application/json', po vykonaní update zisti SQL príkazom nový počet, a s echo json_encode() pošli do modálneho okna odpoveď s novým počtom. A tam v callbacku miesto ignorovania odpovede a volania location.reload radšej updatuj DOM model:
function UpdateRecord(id,a,data,name){
jQuery.ajax({
type: "POST",
url: "update.php",
data: 'id='+id+'&a='+a+'&'+name+'='+data,
cache: false,
success: function (response) {
$('selektor').text(response.count)
// alert("Záznam byl úspěšně změněn.");
// location.reload();
}
});
}
Tvoje řešení dává do jisté míry lepší smysl než to moje. Nicméně i na základní stránce se zobrazují údaje, které jsou na stránce file.php. Tedy kompletní reload udělá i to, že se na základní stránce načtou nové údaje.
Každopádně děkuji za komentář.
A načo načítavaš celú stránku kvôli zmene jediného čísla? Na kliknutie kvôli editácii neotváraj nové okno, to je zhovadilosť. Otvor modálne okno/div v tej istej stránke a číslom z AJAX odpovede updatni aj element modálneho okna, aj element vo výpise pod modálnym oknom.
Zobrazeno 10 zpráv z 10.