Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przesyłanie wyników pętli do Smarty
Forum PHP.pl > Forum > PHP
pitu
Witam

Mam problem w przesłaniu wszystkich wyników pętli i wyświetleniu ich po przez Smarty.

Fragment PHP z pętlą:
  1. $tab = array();
  2. $content = file($file2);
  3. foreach($content as $id => $link) {
  4. $tytul = str_replace("-", " ", $link);
  5. $link = str_replace("\n", "", $link);
  6. $ost = '<a href=http://'.$_SERVER['HTTP_HOST'].'/szukaj/'.$link.'/>'.$tytul.'</a><br />';
  7. }


Chcę wyświetlić wyniki pętli, w tym wypadki zmienną $ost tyle razy ile będzie działała pętla.

Próbowałem wykonać tak:
  1. {foreach item=tab from=$ost}
  2. {$tab}
  3. {/foreach}


Niestety wynikiem jest wypisana tylko raz zmienna $ost.
lng
nadpisujesz zmienną $ost za każdym razem, zmień na:
  1. $ost[] = '<a href=http://'.$_SERVER['HTTP_HOST'].'/szukaj/'.$link.'/>'.$tytul.'</a><br />';


Nie budowałbym też linków w kodzie php. Do tego właśnie służą smarty. Prześlij sobie do szablonu adres oraz tytuł, ale kod zbuduj już w szablonie. Przykładowo, gdy stwierdzisz, że chcesz dodać parametr class do linka, będziesz musiał szukać miejsca w którym jest tworzony, jeśli będzie tworzony w szablonie nie trzeba będzie szukać.
pitu
Dzięki działa. Mam pytanie chcąc zastosować się do twojej sugestii, chciałbym przesłać same zmienne $tytul i $link do szablonu. Mam jednak problem jak w jednej pętli przesyłać obie na raz.
Fifi209
Musisz mieć tablicę wielowymiarową.
pitu
Zrobiłem tak:
  1. foreach($content as $id => $link) {
  2. $ost[$i] = array();
  3. $tytul = str_replace("-", " ", $link);
  4. $link = str_replace("\n", "", $link);
  5. $ost[$i]['tytul'] = $tytul;
  6. $ost[$i]['link'] = $link;
  7. }
  8. $smarty->assign("ost_tab",$ost);


W .tpl
  1. {foreach item=tab from=$ost_tab}
  2. {$tab.tytul} : {$tab.link} <br />
  3. {/foreach}


Lecz wyświetla jak na początku jeden rekord.
Fifi209
  1.  
  2. $ost = array();
  3.  
  4. foreach($content as $id => $link) {
  5. $tytul = str_replace("-", " ", $link);
  6. $link = str_replace("\n", "", $link);
  7. $ost[] = array('tytul' => $tytul, 'link' => $link);
  8. }
  9. $smarty->assign("ost_tab",$ost);


Jak już to tak.
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.