Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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: Ovlivnění HTML pomocí PHP

Aktivity
Avatar
Roman Duchoň:15.4.2018 16:59

Ahoj,
už jsem se tak nějak dostal k PHP, ale pořád jsem se nedostal k nějakému rozumného řešení, jak ovlivnit HTML elementy pomocí PHP - bez klientského skriptovacího jazyka. Je nějaké elegantnější řešení (než se dostanu třeba k Javascriptu), než např.

if ($vysledek) {
    ?>
        <style type="text/css">
            #vstup {display: none;}
            #odeslano {display: inline-block;}
        </style>
    <?php
}

Děkuji za odpověď.

Odpovědět
15.4.2018 16:59
RD
Avatar
VitekST
Člen
Avatar
Odpovídá na Roman Duchoň
VitekST:15.4.2018 20:54

Chtělo by to kontext, ze kterého je tebou uvedený kus kódu vytržen, bez něho nedokáži napsat více než:

Jaký HTML kód vygeneruješ, takový ho máš a takový se zobrazí, pokud chceš schovat formulář, tak ho schovej (dodatečným interním stylopisem, inline stylem, nebo třídou, nebo jednoduchým nevypsáním) a ten tam zůstane, dokud neprovedeš u klienta změnu nebo nenavštívíš nějaký odkaz.

Do hry by JavaScript přicházel až tehdy, pokud by si chtěl udělat upravovat obsah stránky bez opětovného načítání stránky, třeba asynchronní zpracování formuláře, kdy by si během čekání na odpověď serveru zobrazoval kupříkladu točící se kolečko a pak vypsal stav operace, zda-li se zdařila či nikoli. Toto už se jinak řešit nedá, alespoň ne dnes.

Editováno 15.4.2018 20:55
 
Nahoru Odpovědět
15.4.2018 20:54
Avatar
Roman Duchoň:15.4.2018 21:15

No, já se právě ptal jakože obecně... ale asi jsem to opravdu řádně neobjasnil.

Vždycky uvažuji změnu minimálně při nějakém kliknutí - tedy si pro začátek vystačím s formulářem. A odešlu formulář - objeví se / zmizí např. div.

Jen mě zajímalo, zda proto tedy neexistuje lepší způsob, než mezi sebou neustále proplétat HTML a PHP tím vzorem jak jsem poslal. To je jak plétst vánočku.
Možná by ještě šlo něco jako:

<?php
$promena = "none";
?>
<div style="display: <?php echo $promena ?>"></div>

Ale pokud to chápu správně, zas musí jít všechny PHP kódy (třeba s podmínkami) před celou HTML strukturou. Což asi také není na škodu...

Spíš se tak ptám na nejshůdnější řešení těchto operací... ehm... jak se tomu říká? Etiketa? Sémantika? No, aby ten kód prostě nějak vypadal...

Editováno 15.4.2018 21:17
Nahoru Odpovědět
15.4.2018 21:15
RD
Avatar
Roman Havránek:18.4.2018 8:36

Ahoj,

strukturu PHP a obecně PHP si můžeš otevřít kdekoli:

<html>
<div id="pozdrav">
        <?php
        echo ($pozdrav);
        ?>
</div>

</html>

Pokud to budeš psát v čistým PHP, tak ten kod nebude vypadat nikdy dobře.
Pokud chceš psát čistý kod, bude to chtít OOP a později třeba nějaký FW.
OOP odděluje data od vzhledu, využívají se šablonovací systémy a tyto problémy tam nemusíš řešit.
Každopádně bych tohle řešil JS, který je k tomu určený (pokud nechceš realodovat stránku).
Pokud neumíš JS, je tvoje řešení fajn a pokud se učíš, tak jsi na dobré cestě.
Pokud budeš s čímkoli pomoct, přidej si mě klidně na Facebooku, kde ti se vším rychleji poradím.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
18.4.2018 8:36
sleep();
Avatar
Roman Duchoň:18.4.2018 17:41

Děkuji.
Tak 50% z odpovědi znám, zbytek pomohl.

A prostě a jednoduše - zas zbytečně předbíhám. :D
Děkuji za uklidnění.
A děkuji za nabídku, ale nebudu otravovat. ;)

Nahoru Odpovědět
18.4.2018 17:41
RD
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:19.4.2018 8:46

Můžeš použít i kratší zápis ale stále správný zápis pro funkci echo()

<?= $promena ?>

Podobné zápisy vhodné pro vpisování do HTML mají i podmínky a cykly např.

<?php if($promena) : ?>
        <strong>Hodnota:</strong> <?= $promena ?>
<?php endif; ?>

To najdeš v dokumentaci phpka :)

 
Nahoru Odpovědět
19.4.2018 8:46
Avatar
Roman Duchoň:19.4.2018 15:01

Ten už jsem taky objevil.
Chápu, hledám si styl, aby se v tom dobře četlo... :)

Nahoru Odpovědět
19.4.2018 15:01
RD
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.