Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Smarty i brak wartości
Forum PHP.pl > Forum > PHP
emajl22
Mam coś takiego:

  1. while ($x = mysql_fetch_assoc($all_x)) {
  2.  
  3. $x_tab[] = $x;
  4.  
  5. $x_name = codeUrl($x['name']);
  6. $smarty->assign('X_NAME', $x_name);
  7.  
  8. }
  9. $smarty->assign('ALL_X', $x_tab);


i w szablonie:

  1. {foreach item="n1" from="$ALL_X"}
  2. <a href="cos/{$X_NAME}">{$n1.name}</a>
  3. {/foreach}


Problem w tym, że {$X_NAME} pokazuje mi wartość ostatnie rekordu, a nie wg. pętli...
Jak dam echo codeUrl($x['name']); w skrypcie php to działa.. czyli tak jakby brakuje tu pętli jakiejś, ale nie wiem jakiej.

proszę o pomoc.
Fifi209
Jak dla mnie X_NAME nadpisujesz przy każdej iteracji.
wmatusiak
ALL_X przekazujesz poprawnie jako tablice ale X_NAME nadpisujesz przy każdym wykonaniu pętli czyli masz tylko ostatnią wartość bo renderowanie widoku jest dopiero potem.
Ja bym zrobił tak zapisał sobie w jednej tablicy obie wartości powiązane ze sobą i potem w smarty foreach po tej tablicy w każdym przejściu masz obie wartości.
zrób tak:
  1. $tab = Array();
  2. while ($x = mysql_fetch_assoc($all_x)) {
  3. $tab[] = Array(
  4. 'name' => $x['name'],
  5. 'url' => codeUrl($x['name']));
  6. }
  7.  
  8. $smarty->assign('ALL_X', $tab);

Smarty
Kod
{foreach item="n1" from="$ALL_X"}
    <a href="cos/{$n1.url}">{$n1.name}</a>
{/foreach}
emajl22
a coś konkretniej? jakaś rada mile widziana

edit: dzięki wielkie, działa smile.gif
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.