Autor Wątek: [PHP] Generowanie strony funkcja do wpisania ", '  (Przeczytany 637 razy)

Offline TDM

  • Użytkownik

# Marzec 03, 2017, 13:40:29
Witam!

<input type= <?php echo $glob['button']; ?> >

Taki kod nie działa i nie ma co się dziwić czemu bo wynik tego wygląda tak: <input type= dane-z-tablicy> a powinno być 'dane-z-tablicy', tylko pytanie czy żeby wstawić "" muszę wpisać echo '"'.$glob['button']."'"; Czy jest jakaś funkcja która zrobi to za mnie ? Drugie pytanie to jaka jest różnica pomiędzy " a ' w HTML w input type i w funkcjach do eventu ? W PHP jest ale czy tutaj ?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Karol

  • Użytkownik

  • +1
# Marzec 03, 2017, 15:24:57
1. Przeplatanie HTML z PHP to zuo!
2. Jak już musisz mieszać, to używaj apostrofów w PHPie, a cudzysłowów w HTML, czyli w sumie tak jak podałeś ;)
3. Jeżeli chcesz to trochę ładniej zapisać, użyj (s)pritnf -> printf('<input type="%s">', $glob['button']); (wariant z s na początku outputuje do stringa zamiast na wyjście)
4. Jeszcze fajniej skorzystać z formatu HEREDOC (my favourite!)
$html = <<<HTML
<input type="$zmienna" value="{$tablica['button']}" id="{$obiekt->pole}_id">
HTML;
Najważniejsze rzeczy:
- po <<< możesz wpisać cokolwiek, nawet ZADEK, ale musisz tym samym znacznkiem zakończyć
- kończący znacznik musi zaczynać się na początku linii i kończyć się średnikiem, żadnych białych znaków tam być nie może, ani przed, ani po
- możesz w środku używać dowolnie zmiennych PHPa, a jeżeli jest to bardziej złożona "zmienna" (w sensie zapisu, nie typu zmiennej ;) jak tablica czy obiekt albo gdy masz zmienną $id, a chcesz na wyjściu mieć $id_test to zapakują ją w klamerki -> {$id}_test, bo inaczej będzie tam wstawiać $id_test, a to jest undefined, albo zawiera co innego, etc)

5. Albo skorzystaj z jakiegoś systemu szablonów
6. W HTMLu powinno się stosować cudzysłowie (tako rzecze chyba nawet standard), ale w praktyce to przeglądarki łapią cokolwiek.
« Ostatnia zmiana: Marzec 03, 2017, 15:28:26 wysłana przez Karol »

Offline TDM

  • Użytkownik

# Marzec 03, 2017, 15:28:11
Czemu to zuo? To co powinienem robić ? Punkt 4 to też zuo czy tak się robi ?
« Ostatnia zmiana: Marzec 03, 2017, 15:30:32 wysłana przez TDM »

Offline Karol

  • Użytkownik

# Marzec 03, 2017, 15:50:52
Czemu to zuo? To co powinienem robić ? Punkt 4 to też zuo czy tak się robi ?
Bo się robi spaghetti z tego, strasznie źle się to potem czyta i zmienia i jeszcze jest tendencja do wpychania ciut logiki w taki szablon. Jeżeli jednak musisz przemycić małe kawałki HTMLa, albo wyprodukować takiego z PHPa to użyj wariantu 3 (do bardzo krótkich kawałków, na ogół krótkie na pół linijki), 4 (od linijki w górę) lub 5.

Offline TDM

  • Użytkownik

# Marzec 03, 2017, 16:45:41
To zaraz bo sie pogubiłem... Zeby nie mieć kilku plików html z bardzo podobną treścią generuje jeden przy pomocy php. To tak sie nie powinno robić tylko ze względu na czytelność czy chodzi też o coś innego? Przy input używam tego do generowania linku do przeładowania strony przy zmiennych parametrach get

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

# Marzec 03, 2017, 16:50:02
Skorzystaj z jakiegoś systemu szablonów. W Pythonie masz Django Template, w PHP też na pewno już coś takiego powstało ;)

Offline Rakieta

  • Użytkownik

# Marzec 03, 2017, 19:08:09
Jeśli jednak używasz PHP do edycji np. szablonu Wordpress, wtedy mieszanie jest jak najbardziej wskazane.

Czasami mimo wszystko lepiej sobie namieszać, niż angażować w to system szablonów. Wszystko zależy od zastosowania. Kiedy będziesz tworzyć aplikacje na frameworkach, silnik szablonu już będzie must be i będzie pewnie dołączony do frameworka.