NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
mat.masar
Člen
Avatar
mat.masar:29.10.2015 21:13

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:29.10.2015 23:30

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

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

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
Odpovídá na mat.masar
Neaktivní uživatel:30.10.2015 9:29

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
30.10.2015 9:29
Neaktivní uživatelský účet
Avatar
mat.masar
Člen
Avatar
Odpovídá na Neaktivní uživatel
mat.masar:30.10.2015 11:13

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
Odpovídá na mat.masar
Neaktivní uživatel:30.10.2015 11:33

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
30.10.2015 11:33
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:30.10.2015 12:01

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
Neaktivní uživatelský účet
Avatar
mat.masar
Člen
Avatar
Odpovídá na Neaktivní uživatel
mat.masar:30.10.2015 12:15

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
Odpovídá na mat.masar
Neaktivní uživatel:30.10.2015 12:17

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
Neaktivní uživatelský účet
Avatar
mat.masar
Člen
Avatar
Odpovídá na Neaktivní uživatel
mat.masar:30.10.2015 12:27

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 Neaktivní uživatel
mat.masar:30.10.2015 12:34

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
Odpovídá na mat.masar
Neaktivní uživatel:30.10.2015 12:41

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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
30.10.2015 12:41
Neaktivní uživatelský účet
Avatar
mat.masar
Člen
Avatar
Odpovídá na Neaktivní uživatel
mat.masar:30.10.2015 12:54

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.