PHP automatické přidávání html kodu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP automatické přidávání html kodu – PHP – Fórum – Programujte.comPHP automatické přidávání html kodu – PHP – Fórum – Programujte.com

 

Jandak0
Newbie
17. 7. 2017   #1
-
0
-

Ahoj, chtěl bych se zeptat jeslti by mi někdo neporadil jak by se dal udělat v php automatické přidávání nějakého html kodu v čas. např. každou půlhodinu by se přidal kod <p>lorem ipsum<p>. Nějaký nápad jak by to šlo udělat?. Napadlo mě udělat smyčku která by se nějak prováděla co 30 minut ale nevím jak. Php moc neumím. Díky za rady

Nahlásit jako SPAM
IP: 46.174.158.–
Doomista+1
Stálý člen
17. 7. 2017   #2
-
+1
-
Zajímavé

Chceš aby se v otevřené stránce v prohlížeči přidalo něco každou půlhodinu nebo chceš, aby uživatel, který si stránku načte o půlhodinu později, viděl o něco víc? Pokud chceš aktualizovat stránku, kterou má někdo otevřenou v prohlížeči, budeš muset použít Javascript a setInterval(). Pokud chceš, aby se ta stránka změnila jen při načtení webu, tak by sis v PHP musel vyčíst aktuální čas jako UNIX timestamp, mít tam svoji nějakou konstantu, která by řídila, odkdy začínají ty půlhodinové updaty a dopočítat si rozdíl.

Nahlásit jako SPAM
IP: 78.102.108.–
Na vše stačí iostream...
Jandak0
Newbie
19. 7. 2017   #3
-
0
-

#2 Doomista
No našel jsem si že jde obnovovat jen content na stránce.

Tento kod mam v <head>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
 libs/jquery/1.3.0/jquery.min.js"></script>

<script type="text/javascript">
 var auto_refresh = setInterval(
 function ()
{
$('.content').load('index.php').fadeIn("slow");
}, 10000); // refresh every 10000 milliseconds
 </script>

Content se obnoví, ale jen jednou a pak mi obsah stránky zmizí a už se nenačte jen když zmáčknu f5. Nevím proč :/

Nahlásit jako SPAM
IP: 46.174.158.–
Doomista+1
Stálý člen
19. 7. 2017   #4
-
0
-

#3 Jandak
Nenačte se ani když počkáš 10 sekund? Mám trochu podezření, že index.php, který pomocí setInterval načítáš, tak v sobě má i kód, který jsi zde uvedl. Já si ten kód dal do souboru index.html a načítal pomocí něho data.php, po prvních 10 vteřin jsem měl prázdnou stránku a pak se tam obsah data.php v pořádku nahrál.

Mimochodem content by měl být id, nikoliv class a na id se odkazuje pomocí #.

Nahlásit jako SPAM
IP: 78.102.108.–
Na vše stačí iostream...
Jandak
~ Anonymní uživatel
40 příspěvků
20. 7. 2017   #5
-
0
-

#4 Doomista
Nenačte, ano mám ten php script ve stejném souboru index.php. Content je class ne id. S class to nejde?

Nahlásit jako SPAM
IP: 109.233.160.–
Doomista+1
Stálý člen
20. 7. 2017   #6
-
0
-

#5 Jandak
Jde to, ale to neznamená, že se to tak má dělat. Class slouží k označení více prvků, které mají něco společného, především tedy css styl. Id se používá k označení prvků, které jsou něčím unikátní - například prvek, do kterého chceš nahrávat nějaká data.

Za druhé - ve webových technologiích je v současnosti velice populární návrhový vzor MVC - Model View Controller. Ten spočívá v tom, že máš něco, co ti data zobrazuje (View), něco co s nimi manipuluje (Controller) a něco, co je poskytuje (Model). V tvém případě by to mělo vypadat tak, že budeš mít index.html, který bude tím View - budeš v něm mít nějaký doctype, head, body a uvnitř body budeš mít třeba div s id="content". Pak budeš mít javascript kód - to bude tvůj controller. Nemusí být nutně v separátním .js souboru, ale časem, až se ti aplikace rozroste, tak si to do separátního souboru určitě rád dáš. Javascript udělá to, že při načtení stránky (v Jquery je to myslím $ready nebo něco na ten způsob) si natáhneš data do content a zároveň zaregistruješ svůj setInterval. Nakonec pak budeš mít někde data.php a v něm budeš mít natahovaný obsah. Základní kostra kódu by mohla vypadat takto:

index.html (nikdy jsem se nenaučil Jquery, takže místo $ready používám nativní onload event):

<!DOCTYPE html>

<html>

<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>

    <script type="text/javascript">
        var auto_refresh;
        
        function getData() {
            $('#content').load('data.php');
        }
        
        function initApp() {
            getData();
            auto_refresh = setInterval( getData, 10000);
        }
    </script>
</head>

<body onload="initApp()">
    <div id="content">
    </div>
</body>

</html>

data.php:

<h1>Hello world</h1>

<p>Lorem ipsum dolor sit amet.</p>

Když uděláš tohle, tak stačí mít v prohlížeči otevřený index.html a pokud změníš cokoliv v data.php, tak se ti to nejpozději po deseti sekundách zaktualizuje i v prohlížeči.

Pochopitelně tuto odpověď dost zjednodušuju, protože v reálném prostředí by ti data.php mělo vracet raději JSON objekt, a controller by byl zodpovědný za generování html markupu. To ale dost složité a bez frameworku typu angular je to i na zastřelení. Tobě bude bohatě stačit to, co jsem zde uvedl.

Nahlásit jako SPAM
IP: 2001:67c:1220:809::93e5:9...–
Na vše stačí iostream...
Jandak
~ Anonymní uživatel
40 příspěvků
20. 7. 2017   #7
-
0
-

#6 Doomista

Diky, zkusim to prepsat do separatnich souboru, dle tvych komentaru. Jeste jednou diky moc.

Nahlásit jako SPAM
IP: 109.233.160.–
Kit+15
Guru
20. 7. 2017   #8
-
0
-

#5 Jandak
Obecně: Pomocí id říkáš, co chceš zobrazit, pomocí class říkáš, jak chceš zobrazit. Kombinace obou je zcela běžná.

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4014 příspěvků
24. 7. 2017   #9
-
0
-

Jj, id je pro unikatni prvek, obvykle pro js. Obcas tam pridavam do nazvu js, abych vedel, ze se pouziva v js. Class pouzivam jen pro css. Vyjimecne v js pouzivam vybirani i podle class. Nekdy se to hodi. Ale snazim se, aby nad tim byl prvek s id.

Urcite, kdyz funkci pouzivas opakovane, treba pro ten autorefresh, tak je dobre ji dat zvlast do funkce, viz Doomista, treba getData. Pripadne ji pojmenovat vic inteligentne nebo uzavrit do objektu.
 

chat = {};
chat.dataFromUrl = function (url) {...}
chat.refresh = function() {chat.dataFromUrl('text.php'); chat.dataFromUrl('lide.php'); chat.dataFromUrl('mistnosti.php');}
chat.refresh_time = 10000;
var auto_refresh = setInterval( chat.refresh, chat.refresh_time);

To auto_refresh je tam dulezite pro clearInterval, kdybys to chtel prerusit. Coz je treba v pripade, ze chces zmenit refresh time nebo u chatovani odesles zpravu (tehdy potrebujes, aby odpocet zacal od zacatku).
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
Kit+15
Guru
24. 7. 2017   #10
-
0
-

#9 peter
Podle id běžně pozicuji v CSS. Naopak v JS mohu chtít měnit styl zobrazení podle class a nemusí nad tím být žádné id.

Prostě class označuje třídu a id označuje objekt. Rozdíl je snad zřejmý.

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4014 příspěvků
24. 7. 2017   #11
-
0
-

Ja prave id do css nerad cpu. Proste, idkyz ma objekt id, tak mu pridelim class, kdyz chci styly. Id mam vyhradne pro js. V js se snazim zas vyhybat classum jako objekty. Vdycky mam jako prvni nejaky id objekt az pak je pod nim neco s class. Treba #list_clanky, .clanek, .clanek_nadpis

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
Doomista+1
Stálý člen
24. 7. 2017   #12
-
+1
-
Zajímavé
Kit +

#11 peter
Tohle je asi dost věc názoru. Osobně používám ID i pro odlišení znovupoužitelných stylů od těch jednorázových. Jedna věc je stylovat odstavec a druhá věc je stylovat třeba sidebar, který se mi v rámci jednoho dokumentu určitě víckrát objevit nesmí.

Nahlásit jako SPAM
IP: 2001:67c:1220:809::93e5:9...–
Na vše stačí iostream...
Kit+15
Guru
24. 7. 2017   #13
-
0
-

#12 Doomista
Je to logické. Sidebar je konkrétním objektem, proto ID. Odstavec je obecné označení kusu textu, proto třída.

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 58 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý