Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][smarty] Wyswietlanie zmiennych
Wolfie
post 29.10.2009, 13:02:59
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam

Mam taki dziwny problem, mimo prawidlowego kodu, ktory dziala w innym przpadku, tutaj cos jest nie tak

Wiec mam sobie taka funkcje :

  1. public function message($params) {
  2. echo 'Message function in FileController';
  3. $setDir = $this->model->setDir('MyMailIndex/');
  4. $msgsParts = $this->model->getMessage($setDir, $params['id']);
  5. //print_r($msgsParts);
  6. $this->view->setVars('message',$msgsParts);
  7. $this->view->display('message');
  8. }


funkacja laduje dane z modelu :

  1. $msgsParts = $this->model->getMessage($setDir, $params['id']);


Funkcja getMessage zwraca mi tablice z zawartoscia zmiennych

I przekazuje do widoku :

  1. $this->view->setVars('message',$msgsParts);
  2. $this->view->display('message');


Funcke widoku wygladaja tak :

  1. public function setVars($name, $value) {
  2. $this->vars[$name] = $value;
  3. }
  4.  
  5. public function display($filename) {
  6. extract($this->vars);
  7. require 'screens/'.$filename.'.php';
  8. }


No i teraz chce wyswietlic widok :

  1. $smarty = new Smarty_Setup;
  2.  
  3. $smarty->assign('nadawca', 'Nadawca');
  4. $smarty->assign('message', $message);
  5.  
  6. $smarty->display('message.tpl');


Tutaj widok :

  1. <div id="mess">
  2. <div>
  3. <label>{$message.header}</label>
  4. <label>{$nadawca}</label>
  5. <label>{$message.from}</label>
  6. <label>{$message.body}</label>
  7. </div>
  8. </div>


A tutaj pusto.....

Mam identyczne rozwiazanie dla danych pobieranych ze skrzynku mailowej i wszysto dziala, w tym przypadku dane sa pobierane z pliku

Spawdzilem czy dane wogole sa ladowane :

  1. $msgsParts = $this->model->getMessage($setDir, $params['id']);
  2. print_r($msgsParts);


I funkcja print_r ladnie wyswietla cala tablice, wiec cos jest nie tak z przekazywaniem zmiennych do widoku.....ale nigdzie nie widze bledu....

Dorzuce jeszcze ta tablice ktora chce wyswietlic :

Cytat
Array ( [0] => Array ( [subjects] => Re: Logo trademark license vs. copyright license [date] => Mon, 16 Apr 2007 09:57:33 +0200 [from] => Arnoud Engelfriet [body] => Francesco Poli wrote: [filename] => inmail.10002 ) )


Co prawda zmienne w tablicy maja inne nazwy niz w widoku, ale jedna zmienna sie pokrywa 'body' wiec chociaz to powinno sie wyswietlac

Ten post edytował Wolfie 29.10.2009, 13:07:41
Go to the top of the page
+Quote Post
grzegorzr
post 29.10.2009, 13:54:14
Post #2





Grupa: Zarejestrowani
Postów: 65
Pomógł: 3
Dołączył: 1.06.2007
Skąd: self::display()

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


Jak sam zauważyłeś zmienne do wyświetlenia masz w tablicy. Użyj foreach aby je wyświetlić lub odwołaj się do pierwszego indeksu tablicy....
Go to the top of the page
+Quote Post
Wolfie
post 29.10.2009, 14:01:28
Post #3





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Fakt, wlasnie tez to przed chwila zauwazylem, ze niepotrzebnie pakowalem dane do jeszcze jednej tablicy..... wiec smarty dostawalo zmienne w zlej postaci ......teraz juz wszystko gra

Ten post edytował Wolfie 29.10.2009, 14:02:38
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: 19.06.2025 - 08:33