Avatar
mat.masar
Člen
Avatar
mat.masar:

Ahoj, chtěl bych se zeptat, proč se odstavec nijak neostyloval...
php

else
{

        echo '<p id="odhlasovano">Už jsi hlasoval</p>';

}

css

#odhlasovano{
        float: right;
        border-bottom: 50px solid red;
}

Nefunguje to ani u ostatních odstavců

 
Odpovědět 29.10.2015 21:13
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:

V dodaném kódu chyba není.
Nemáš v keši starý stylopis?

 
Nahoru Odpovědět 29.10.2015 23:30
Avatar
mat.masar
Člen
Avatar
Odpovídá na Tonda Kozák
mat.masar:

Asi ano, ale když si procházím seznam cookie a dat webů tak tam nic nemám(hledal jsem název mého stylopisu)

 
Nahoru Odpovědět 30.10.2015 8:30
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na mat.masar
Inoue Yūki:

Zkus si vymazat cache (popřípadě to zkus v jiném prohlížeči), zkontroluj, že se ti k HTML přikládá správný CSS soubor, můžeš se podívat do dev tools a zkontrolovat, jestli pro dané ID existuje styl.

Nahoru Odpovědět  +2 30.10.2015 9:29
Avatar
mat.masar
Člen
Avatar
Odpovídá na Inoue Yūki
mat.masar:

Když dám zobrazit prvek tak mi to žádný styl nepřiřazuje k tomu echu... Ale napadlo mě není to tím, že se to vypisuje dřív, než se načítá soubor se stylem?

 
Nahoru Odpovědět 30.10.2015 11:13
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na mat.masar
Inoue Yūki:

V PHP se obyčejně nevypisuje nic. To až ve speciálních šablonách (kde se sice PHP užít může, ale nikoli pro logiku aplikace). Jestli tudíž zpracováváš PHP ještě předtím, než načítáš "šablonu" (z tvého zápisu soudím, že kombinuješ PHP a HTML, tudíž v tvém případě by šablona byla někde uprostřed dokumentu, začínaje <!DOCTYPE), je možné, že se ti odstavec s ID "odhlasovano" načítá ještě před načtením souboru CSS, nejsem si tím ale jistý. Můžeš mi někam na pastebin hodit celý zdrojový kód z prohlížeče (jen HTML)? V Chrome to můžeš zjistit: pravé tlačítko -> zobrazit zdrojový kód stránky.

Nahoru Odpovědět  +1 30.10.2015 11:33
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na Inoue Yūki
Inoue Yūki:

html
http://pastebin.com/Eds1wuew
php
http://pastebin.com/5eRuv06P

Nejsem si jistý, jestli prohlížeč styluje i značky, co jsou mimo <html>, ale vypadá to, že ne. Zkus si místo vypsání toho <p id... vytvořit nějakou proměnnou, třeba $odhlasovano = true a poté níže (už ve značce <html><body>) něco takového:

<?if ($odhlasovano):?>
        <p id="vlozeno">Hlas byl úspěšně zapsán</p>
<?endif?>
Nahoru Odpovědět 30.10.2015 12:01
Avatar
mat.masar
Člen
Avatar
Odpovídá na Inoue Yūki
mat.masar:

Moc tomu nerozumím, proč se ptám na $odhlasovano, když pak stejně vypisuju vložení? Asi to bude tím, že nevím co znamená ta :? na konci ifu.

 
Nahoru Odpovědět 30.10.2015 12:15
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na mat.masar
Inoue Yūki:

Promiň, samozřejmě jsem myslel:

<?if ($odhlasovano):?>
       <p id="odhlasovano">Už jsi hlasoval</p>
<?endif?>

Ale jde o princip. Nemůžeš vypisovat nic, dokud nezačneš dokument HTML, protože ten má na starost výpis, nikoli PHP.

Nahoru Odpovědět 30.10.2015 12:17
Avatar
mat.masar
Člen
Avatar
Odpovídá na Inoue Yūki
mat.masar:

Aha ok díky jinak ještě jsem se ptal co znamená ta : ? ale upravilo mi to na smajlíka

 
Nahoru Odpovědět 30.10.2015 12:27
Avatar
mat.masar
Člen
Avatar
Odpovídá na Inoue Yūki
mat.masar:

Jinak, ještě řeším problém, že se to vypisuje hned při načtení stránky.. Myslel jsem to tak, aby když odešle prázdný formulář se vypsalo "Klidně hlasuj", když odhlasuje a ještě nehlasoval "Hlas byl započten"(nebo něco takového) a když odhlasuje a už jednou hlasoval tak "Už jsi hlasoval"

 
Nahoru Odpovědět 30.10.2015 12:34
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na mat.masar
Inoue Yūki:

Je to forma z:

<?php
//...

if ($odhlaseno) {
        echo '<p id="odhlasovano">Už jsi hlasoval</p>';
}

Používá se to v šablonách, abys nepoužíval echo. Množinový závorky nahradíš dvojtečkou za začátku a endif na konci. <? je zkrácenina od <?php a začíná PHP kód, ?> PHP kód končí. Ve výsledku to tedy vypadá takto:

<?if ($odhlasovano): ?>
       <p id="odhlasovano">Už jsi hlasoval</p>
<?endif?>

Co se týče toho druhého dotazu, můžeš to udělat ještě tak, že místo $odhlaseno = true, si prostě do proměnné uložíš zprávu, kterou chceš odeslat. Nějak takto:

<?php
//...
if ($odeslanPrazdnyFormular) {
        $message = 'Klidně hlasuj';
} elseif ($jesteNehlasoval) {
        $message = 'Hlas byl započten';
} elseif ($uzHlasoval) {
        $message = 'Už jsi hlasoval';
}

// dále v kódu

<?if (!empty($message)):?>
        <p><?=$message?></p>
<?endif?>

Samozřejmě si ty podmínky můžeš předělat podle toho, jak potřebuješ.

Poznámka: <?= je zkrácenina, která se používá v šablonách, od <? echo. :)

Editováno 30.10.2015 12:43
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 30.10.2015 12:41
Avatar
mat.masar
Člen
Avatar
Odpovídá na Inoue Yūki
mat.masar:

Díky za vysvětlení těch zkratek :D Ještě jsem je nikdy nepoužil tak už aspoň vím, co všechno jde..
K druhému dotazu taky díky

 
Nahoru Odpovědět 30.10.2015 12:54
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 14 zpráv z 14.