Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][smarty] Wyswietlanie zmiennych
Forum PHP.pl > Forum > Przedszkole
Wolfie
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
grzegorzr
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....
Wolfie
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.