Avatar
dinokino
Člen
Avatar
dinokino:

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:

Zkus

echo "<p>";
echo "Ahooj";
echo "</p>";
Nahoru Odpovědět  +1 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:

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:

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
petrsmejkal95:

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
Avatar
Odpovídá na dinokino
petrsmejkal95:

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

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

Nefunguje... :/

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

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:

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  +1 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:
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í
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 2.11.2015 23:31
Člověk může dosáhnout čeho si zamane. Jen musí chtít, případně něco obětovat ...
Avatar
Odpovídá na dinokino
Martin Konečný (pavelco1998):

Ř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
Avatar
dinokino
Člen
Avatar
dinokino:

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
Inoue Yūki
Redaktor
Avatar
Odpovídá na dinokino
Inoue Yūki:

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  +1 3.11.2015 6:19
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.