Autor | Zpráva | ||
---|---|---|---|
Komlkol Profil * |
#1 · Zasláno: 30. 4. 2015, 11:18:18
Zdravím,
nastavil jsem si na stránce cachování a bohužel mi to bere i počítadlo. A tak bych se chtěl zeptat, zda-li je možné pomocí js spustit php script. Tedy například, js script bude na stránce web.cz/konkretni-stranka.php a aby se při každém načtení této stránky spustilo počítadlo na web.cz/pocitadlo/pocet.php Předem díky za rady. |
||
Str4wberry Profil |
#2 · Zasláno: 30. 4. 2015, 11:25:55
Jde k tomu použít AJAX nebo prosté vytvoření obrázku a nastavení cílové stránky do
src : AJAX » Pingnutí obrázkem
|
||
Komlkol Profil * |
#3 · Zasláno: 30. 4. 2015, 11:30:26
Děkuji za rychlou odpověď, jak to jde ještě prosím udělat pomocí Ajaxu?
|
||
Str4wberry Profil |
#4 · Zasláno: 30. 4. 2015, 11:34:38
Odrolujte si v tom článku na začátek. :–)
Ale pokud není potřeba získat zpět nějakou odpověď, tak stačí ten obrázek. |
||
Komlkol Profil * |
#5 · Zasláno: 30. 4. 2015, 11:36:05
Ideální by bylo, pokud by se ještě vrátilo číslo, které se na php scriptu jako jediné vypíše, ale to se bojim, že nepůjde.
|
||
Str4wberry Profil |
#6 · Zasláno: 30. 4. 2015, 11:45:53
Tak to půjde právě tím AJAXem.
|
||
Komlkol Profil * |
#7 · Zasláno: 30. 4. 2015, 11:59:59
Takže takhle by to mohlo být?
<script type="text/javascript"> $('#result').load('test.php'); </script> |
||
_es Profil |
#8 · Zasláno: 30. 4. 2015, 12:07:56
Choď späť na krok [#4].
|
||
Komlkol Profil * |
#9 · Zasláno: 30. 4. 2015, 12:18:18
Bohužel javascriptu vůbec nerozumím, ale tak co jsem hledal, tak mi přijde nejlepší nějak použít fci load, ale nevím jak na to.
Na stránce s počítadlem se vypíše akorát číslo, které bych potřeboval vypsat na stránku. Nebyla by další nápověda? |
||
_es Profil |
#10 · Zasláno: 30. 4. 2015, 12:30:39
Komlkol:
Celkovo sa vyjadruješ nejako nezrozumiteľne. Čo znamená „bohužel mi to bere i počítadlo“? Ako „berie“? Kedy to (čo) nemá „brať“? Ak to bude cez AJAX, tak to „brať“ nebude? Prečo to počítadlo nedáš už do web.cz/konkretni-stranka.php a tam „nevypisuješ“? Okrem toho, myslíš, že návštevníka zaujíma nejaké „počítadlo“?
|
||
Komlkol Profil * |
#11 · Zasláno: 30. 4. 2015, 12:46:00
To počítadlo je počet spuštění a navštěvníci dle něj mohou řadit.
Nyní bohužel to proběhne jednou a poté je stránka cachnuta a až cca za hoďku se započítá další spuštění (obnova cache) Takže nyní potřebuji, aby mi javascript načetl obsah z /pocitadlo/pocet.php (po spuštění tohoto php se vypíše pouze '152') a to bych potřeboval vypsat na stránce, ze které je volán. |
||
_es Profil |
#12 · Zasláno: 30. 4. 2015, 13:30:43
Komlkol:
„a až cca za hoďku se započítá další spuštění (obnova cache)“ Ak až za hodinu? To snáď návštevník hodinu stále pozerá na tú istú stránku, bez toho, aby sa hocičo zo serveru načítalo? „(po spuštění tohoto php se vypíše pouze '152') a to bych potřeboval vypsat na stránce, ze které je volán.“ Prečo to vypočítanie '152' nedáš priamo do tej „stránky, z ktorej je volaný“? |
||
Komlkol Profil * |
#13 · Zasláno: 30. 4. 2015, 13:44:44
Vždy když se počítadlo načte, tak se zvětší o 1. Tedy 1. načtení 1, druhý 2, třetí 3,.... (klasicky php soubor)
Stránka, na které chci toto zobrazit je cachnutá, tedy je zachycena jako klasický soubor .html (nelze na ni použít php) Takže potřebuji toto načíst a vypsat pomocí javascriptu. |
||
_es Profil |
Komlkol:
No tak použi trebárs upravený prvý kód z článku: <script> var vystup = document.getElementById("idElementu"); // kam sa to má výpísať var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) vystup.innerHTML = xhr.responseText; }; xhr.open('GET', "pocitadlo/pocet.php"); xhr.send(); </script> |
||
Komlkol Profil * |
#15 · Zasláno: 30. 4. 2015, 14:18:16
Díky, to je přesně ono :)
|
||
Keeehi Profil |
#16 · Zasláno: 30. 4. 2015, 15:31:19
A co to kešování udělat trochu inteligentnější? Řekněme že máš kešovaný kód v stránka.html a v něm tam, kde pak chceš mít počítadlo máš řetězec {pocitadlo}. No a pak máš jiný soubor, který bude tento soubor zobrazovat.
<?php echo str_replace('{pocitadlo}', $hodnotaPocitadla, file_get_contents('stránka'); |
||
Časová prodleva: 6 dní
|
|||
Komlkol Profil * |
#17 · Zasláno: 6. 5. 2015, 15:12:26
Tak jsem narazil ještě na jeden problém.
Je možné dát tam tento script 2x? konkrétně tento: <div id="statistika1">neco1</div> <div id="statistika2">neco2</div> <script> window.onload = function(){ var vystup = document.getElementById("statistika1") var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) vystup.innerHTML = xhr.responseText; }; xhr.open('GET', "/pocitadlo/pocet1.php"); xhr.send(); }; </script> <script> window.onload = function(){ var vystup = document.getElementById("statistika2") var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) vystup.innerHTML = xhr.responseText; }; xhr.open('GET', "/pocitadlo/pocet2.php"); xhr.send(); }; </script> Nevíte jak udělat, aby proběhlo obojí a ne jen jedno? |
||
_es Profil |
Komlkol:
Namiesto window.onload = function(){...}; použi (function(){...})(); . Alebo len tak ako v [#14], no nesmú byť v skriptoch premenné s rovnakým názvom. Ak by toho malo byť viac, tak by bolo dobré si na to spraviť funkciu.
|
||
bestik_63 Profil |
#19 · Zasláno: 6. 5. 2015, 18:24:14
Já používám toto:
$(document).ready(function() { //počká až bude načten dokument (až bude možné prohledávat DOM) $.ajax({ type: "POST", url: "revize_hlidac1.php" }) $.ajax({ type: "POST", url: "revize_hlidac2.php" }) }) a spouští mi to to obě stránky. Je k tomu potřeba mít načtený Jquery. |
||
Časová prodleva: 7 dní
|
|||
Komlkol Profil * |
#20 · Zasláno: 13. 5. 2015, 21:25:24 · Upravil/a: Komlkol
Ani jedno vaše řešení se mi nepovedlo nasadit, nedal by to někdo prosím konkrétně?
Nakonec se mi povedlo rozchodit řešení od _es , nejprve sem zapomněl na závorku. |
||
Časová prodleva: 10 let
|
0