Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací

Diskuze: Ovlivnění HTML pomocí PHP

PHP PHP Ovlivnění HTML pomocí PHP American English version English version

Aktivity (1)
Avatar
Roman Duchoň:15. dubna 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. dubna 16:59
RD
Avatar
VitekST
Člen
Avatar
Odpovídá na Roman Duchoň
VitekST:15. dubna 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. dubna 20:55
 
Nahoru Odpovědět  +1 15. dubna 20:54
Avatar
Roman Duchoň:15. dubna 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. dubna 21:17
Nahoru Odpovědět 15. dubna 21:15
RD
Avatar
Roman Havránek:18. dubna 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í
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 18. dubna 8:36
sleep();
Avatar
Roman Duchoň:18. dubna 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. dubna 17:41
RD
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:19. dubna 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. dubna 8:46
Avatar
Roman Duchoň:19. dubna 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. dubna 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.