Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Twig][Slim] Ładowanie szablonów.
L0k0
post 24.11.2014, 09:46:02
Post #1





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

Ostrzeżenie: (0%)
-----


Witam!

Nie wiem jak sobie poradzić z 'przekazaniem' nowych zmiennych do załadowanego template'a.

Mam tak:

  1. $app->get('/', function() use($app){
  2.  
  3. $app->render('main.html', array('id' => '1', 'info_type' => '', 'display' => 'none', 'info' => ''));
  4.  
  5. //... tutaj mam jakiegoś if'a i inny kod PHP
  6.  
  7. }
  8.  
  9. $app->render('main.html', array('info_type' => '2', 'display' => 'block', 'info' => 'lalala'));
  10.  
  11.  
  12. });
  13.  
  14. $app->run();


Problem polega na tym, ze drugie użycie 'redner' powoduje ponowne wygenerowanie całego template'a. Nie wiem jak przekazać same zmienne...

Pozdrawiam
Go to the top of the page
+Quote Post
Pyton_000
post 24.11.2014, 10:04:56
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A nie możesz po prostu raz wygenerować szablonu z dobrymi zmiennymi ?
Go to the top of the page
+Quote Post
Forti
post 24.11.2014, 10:47:24
Post #3





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


w kontrolerze:
  1. $twig = $this->get('twig');
  2. $twig->addGlobal('zmienna', $twojaZmienna);


Albo to co powiedział kolega powyżej.

  1. $array1 = array('id' => '1', 'info_type' => '', 'display' => 'none', 'info' => ''));
  2.  
  3. $array2 = array('info_type' => '2', 'display' => 'block', 'info' => 'lalala'));
  4.  
  5. $app->render('main.html', array('array1' => $array1, 'array2' => $array2);
  6.  
  7.  


Ten post edytował Forti 24.11.2014, 10:49:21


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
L0k0
post 24.11.2014, 10:47:44
Post #4





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 24.11.2014, 10:04:56 ) *
A nie możesz po prostu raz wygenerować szablonu z dobrymi zmiennymi ?



No właśnie nie, chodzi o wyświetlanie komunikatów: po załadowaniu strony okno komunikatów ma być niewidoczne, dopiero po skorzystaniu z formularza mogą się pojawić informacje o błędach.

Edit: poradziłem sobie rutingiem. Po prostu formularz przekazałem post'em i mam $app->post[...] dzięki czemu znowu mogę wysłać zmienne. Chociaż nie wiem czy to najlepszy pomysł...

Ten post edytował L0k0 24.11.2014, 12:04:59
Go to the top of the page
+Quote Post
Pyton_000
post 24.11.2014, 12:46:19
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Przecież wypełniasz form, klikasz wyślij i... robisz walidację. Jak jest błąd to redirect back i dołączasz pola form + błędy i generujesz na nowo templakę.
Go to the top of the page
+Quote Post
L0k0
post 24.11.2014, 12:56:23
Post #6





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 24.11.2014, 12:46:19 ) *
Przecież wypełniasz form, klikasz wyślij i... robisz walidację. Jak jest błąd to redirect back i dołączasz pola form + błędy i generujesz na nowo templakę.


Hej

Możesz rozwinąć trochę temat? Rozumiem, że robię routing:


  1. $app->get('/', function() use($app){
  2.  
  3. $app->render('main.html', array(
  4. 'info_type' => '',
  5. 'display' => 'none',
  6. 'display2' => 'none',
  7. 'info' => '',
  8. 'url' => ''));
  9.  
  10. });


I formularz wysyłam get'em więc 'wracam' do tego routingu od nowa więc gdzie musiałbym dokonać zmian wartości? Nie bardzo rozumiem...
Go to the top of the page
+Quote Post
Pyton_000
post 24.11.2014, 13:33:40
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Wchodzisz na '/', wypełniasz form, post na np '/send', sprawdzasz wszystko co chcesz.
Jak masz błąd to wrzucasz w sesyjny "flash" dane z form + błędy z form (flash czyli podręczna pamięć sesyjna która wygasa po przejściu na inną podstronę)
Przekierowujesz z powrotem na np '/'. Tam sprawdzasz czy masz dane z tego forma w sessi, jeżeli tak to wrzucasz je w inputy i pobierasz błędy
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:38