IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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: Rozložení stránky

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
dinokino
Člen
Avatar
dinokino:2.11.2015 22:23

Dobrý den, učil jsem se podle zdejších návodů na html. Když jsem ale "předělal" stránky na php, tak jsem narazil na malý problém. mám php stránku, která má v podstatě celý kód napsaný v html. Pouze do article -> section jsem vložil php kód:

<?php include("pokus.php");
?>

V souboru pokus.php jsem pak měl:

<html>
<?php
echo("Ahooj");
?>
</html>

Tady vše fungovalo jak mělo - na stránce v části "section" se objevilo Ahooj (viz. obr. 1)
Problém nastal, když jsem do souboru pokus.php chtěl napsat i něco z html. Například toto:

<html>
<?php
echo("Ahooj");
<p>
Ahooj
</p>
?>
</html>

To mi trochu zamotalo rozložení stránky. Co tím myslím je vidět na obrázku 2(ten bez té modré barvy). Prosím poraďte, neví někdo co s tím, čím to je? :)

 
Odpovědět
2.11.2015 22:23
Avatar
Hit
Člen
Avatar
Hit:2.11.2015 22:31

Zkus

echo "<p>";
echo "Ahooj";
echo "</p>";
Nahoru Odpovědět
2.11.2015 22:31
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
dinokino
Člen
Avatar
dinokino:2.11.2015 22:38

Díky, tohle funguje. A mohu se zeptat...Takto se v php skriptu (nebo jak to nazvat) běžně zapisuje HTML? :) V php neumím programovat, jen jsem tak "nakoukl" na ten příkaz include (používám ho k tvorbě menu). Nebo to jde i jinak? :)

 
Nahoru Odpovědět
2.11.2015 22:38
Avatar
dinokino
Člen
Avatar
dinokino:2.11.2015 22:49

Tak jsem zjistil, že i když napíšu to echo"htmlkod";, tak jsou problémy, když chci použít stylování v css... :(
Když napíši např:

<html>
<?php
echo"Ahoooj";
echo "<span class="trida">";
echo "<ul><li class="sty"><a href=stranky/cistechnika.php>cis</a></li>";
echo "<li><a href=stranky/elektronika.php>ele</a></li></ul>";
echo "</span>";
?>
</html>

Tak se s rozložením stane to co na tom druhém obrázku (v první zprávě). Neví někdo, jak to php skloubit s CSS? :D

 
Nahoru Odpovědět
2.11.2015 22:49
Avatar
Neaktivní uživatel:2.11.2015 22:52

v php nemůžeš jen tak psát html musíš to buď pomocí nějaké funkce vytisknout př. echo(). nebo to napsat mimo direktivy ohraničující php kód.
<html>
<?php
echo("Ahooj");
?>
<p>
Ahooj
</p>
</html>
nebo
<html>
<?php
echo("Ahooj");
echo "<p>";
echo "Ahooj";
echo "</p>";
?>
</html>

Nahoru Odpovědět
2.11.2015 22:52
Neaktivní uživatelský účet
Avatar
Odpovídá na dinokino
Neaktivní uživatel:2.11.2015 22:56

echo "<span class="trida">"; ->echo "<span class=""trida"">"; by mělo fungovat

Nahoru Odpovědět
2.11.2015 22:56
Neaktivní uživatelský účet
Avatar
dinokino
Člen
Avatar
dinokino:2.11.2015 23:05

Nefunguje... :/

 
Nahoru Odpovědět
2.11.2015 23:05
Avatar
dinokino
Člen
Avatar
dinokino:2.11.2015 23:05

No asi to budu muset vyřešit jinak...Ale díky :)

 
Nahoru Odpovědět
2.11.2015 23:05
Avatar
Hit
Člen
Avatar
Odpovídá na dinokino
Hit:2.11.2015 23:15

Nemám možnost to teď vyzkoušet, ale zkusil bych upravit všechny uvozovky a to tak, že před ně dáš zpětný lomítko ( \ ) a ještě bych hodil uvozovky s lomítkem k odkazům:

<html>
<?php
echo"Ahoooj";
echo "<span class=\"trida\">";
echo "<ul><li class=\"sty\"><a href=\"stranky/cistechnika.php\">cis</a></li>";
echo "<li><a href=\"stranky/elektronika.php\">ele</a></li></ul>";
echo "</span>";
?>
</html>
Editováno 2.11.2015 23:17
Nahoru Odpovědět
2.11.2015 23:15
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na dinokino
TomasGlawaty:2.11.2015 23:31
echo '<span class="trida">'

vypisuješ textový řetězec, ten může být buďto v uvozovkách, nebo v apostrofech. Když použiješ uvozovky, nemůžeš uvnitř řetězce uvozovky použít, ale můžeš použít apostrofy a naopak (viz. code nahoře.).
Respektive, použít je můžeš, ale musí se escapovat.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
2.11.2015 23:31
Avatar
Odpovídá na dinokino
Martin Konečný (pavelco1998):2.11.2015 23:36

Řešeních je víc

echo "<span class='neco'>";
echo "<span class=\"neco\">";
echo '<span class="neco">';

v podstatě nesmí dojít ke kolizi těch apostrofů / uvozovek. Vyhnout se tomu dá použití zpětných lomítek.

a to podle mě nejlepší

<span class="neco">
Editováno 2.11.2015 23:36
Nahoru Odpovědět
2.11.2015 23:36
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
dinokino
Člen
Avatar
dinokino:2.11.2015 23:39

Tak už je to kompletně vyřešeno :) Díky moc :) (Nevěděl jsem to s těmi uvozovkami) :)

 
Nahoru Odpovědět
2.11.2015 23:39
Avatar
Odpovídá na dinokino
Neaktivní uživatel:3.11.2015 6:19

Jinak trochu mimo téma: když nepoužíváš žádný architektonický vzor, je lepší mít v kódu alespoň nějakou úpravu. Nahoře měj vše, co se týká logiky (+pomocí include/require si tahej data). Dole pak měj HTML s šablonovým vzhledem PHP. Může to pak vypadat nějak takto:

<?php
// Logika aplikace
$flashMessage = '';
if ($_SERVER['REQUEST_METHOD'] == 'POST')
        $flashMessage = 'Odeslal jsi formulář!';
?>

<!-- Vzhled a struktura aplikace -->
<html>
        <p class="message"><?=$flashMessage?></p>
        <form>
                //...
        </form>
</html>
Editováno 3.11.2015 6:19
Nahoru Odpovědět
3.11.2015 6:19
Neaktivní uživatelský účet
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 13 zpráv z 13.