Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Przesyłanie wyników pętli do Smarty
pitu
post
Post #1





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


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.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
lng
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.02.2011

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


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ć.
Go to the top of the page
+Quote Post
pitu
post
Post #3





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


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.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Musisz mieć tablicę wielowymiarową.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
pitu
post
Post #5





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


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.


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


  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.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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 Aktualny czas: 19.08.2025 - 21:53