Panowie przejdę do rzeczy, otóż w czystych phpie mam kod który dziala:
foreach (http://www.php.net/array($value['tablica']) as $row){ http://www.php.net/echo $row['imie'] . ' - ' . $row['nazwisko'] . '<br>'; }
{foreach ...... } {foreach from=$var.tablica item="value"} {$value.imie} <br> {/foreach} {/foreach}
Chyba dokumentacja sie klania...
nie item="value"
a: item=value
@nospor wydaje mi sie, że to nie ma większego znaczenia. Jak było tak jest nadal - tylko pierwszy znak
dodanie w foraech key="key"
{$key} - > {$value} a teraz {$value.imie}
A pokaz caly kod bo mogles cos namieszac po drodze. Pokaz zarowno w php jak tworzysz te tablice i przypisujesz do smarty oraz calosc tego smarty bo widze masz tam petle jakas nad
ps: no skoro {$value} daje ci Jan to logiczne ze masz tam tylko tekst a nie tablice i ze {$value.imie} bedzie ci lecial po tekscie a nie po tablicy...
ps2: takze cos mi sie wydaje ze zamiast
{foreach from=$var.tablica item="value"}
{$value.imie}
<br>
{/foreach}
powinno byc poprostu
{$var.imie}
{$var.nazwisko}
@nospor:
{foreach from=$link item=val key=i} {$val.name} <http://december.com/html/4/element/br.html> {foreach from=$val.Other item=var} {$var.fName} <http://december.com/html/4/element/br.html> {foreach key="key" from=$var.tablica item=value} {$value.imie} <http://december.com/html/4/element/br.html> {/foreach} <http://december.com/html/4/element/br.html> {/foreach} <http://december.com/html/4/element/br.html> {/foreach}
nie
{foreach key="key" from=$var.tablica item=value}
{$key} => {$value} --- {$value.imie}
<br>
{/foreach}
a:
{$var.tablica.imie}
{$var.tablica.nazwisko}
Dzięęęęęęęęękuje! jak zawsze bardzo mi pomogłeś
@nospor a jeszcze takie pytanie, a co jeśli w:
{$var.tablica} mam więcej elementów (imion) ? to w jaki sposób mam to wyświetlić skoro foreachem mi pobiera tylko pierwszy znak ?
@casperii
Nie wiem czy zauważyłeś, ale FOREACH to jest pętla, więc wyświetli ci wszystkie imiona które są w $var.tablica.
@Tomplus to ja wiem co to jest foreach - i nawet tak miałem - tyko , że po przekazaniu do smarty (TPL) - chwyta mi to jako string i lecąc foreachem pokazuje mi pierwszą literkę.
Dobra zacznijmy od początku bym miał pewność , że dobrze rozumiem / robię to:
PHP:
<?php $tablica = http://www.php.net/array(); while($row = $sql->fetch(PDO::FETCH_ASSOC)){ $nrAuto = $row['nrAuto']; if (!http://www.php.net/isset($tablica[$nrAuto])) $tablica[$nrAuto] = http://www.php.net/array( 'name' => $row['name'], 'nrAuto' => $row['nrAuto'], 'model' => http://www.php.net/array() ); if (!http://www.php.net/empty($row['auto'])) $tablica[$auto]['model'][] = http://www.php.net/array( 'desc' => $row['desc'], 'kolor' => http://www.php.net/array( 'newId' => $row['newid'], 'descTwo' => $row['descTwo'] ) ); } foreach ($tablica as $idCat => $val){ http://www.php.net/echo '<strong>' . $val['nrAuto'] . ' - ' . $val['name'] . ' - ' . $val['model'] . '</strong>'; foreach ($val['model'] as $value){ http://www.php.net/echo $value['desc'] . ' - ' . $value['kolor'] . '<br>'; foreach (http://www.php.net/array($value['model']) as $row3){ http://www.php.net/echo $row3['newId'] . ' - ' . $row3['descTwo'] . '<br>'; } } http://www.php.net/echo '<br><br>'; $link[] = $val; } } ?>
foreach ([b]http://www.php.net/array([/b]$value['model'][b])[/b] as $row3){ http://www.php.net/echo $row3['newId'] . ' - ' . $row3['descTwo'] . '<br>'; }
Juz ci mowilem: smarty widzic cos jako tekst, tylko dlatego ,ze tekst mu zapodajesz. Zrozum to w koncu. Nie zwalaja winy na smarty gdy sam nie ogarniasz za bardzo co masz
Kolejna sprawa: nie wkladaj BBCODE (pogrubienia) w kod php, bo tylko zaciemniasz kod....
Trzecia sprawa: nie podales jak to w smarty to obrabiasz
No i poczwarte: nie, w php tez to ci nie dziala. Przechodzi ci ten kod w php, tylko dlatego ze czyste stare php jest mniej restrykcyjne niz smarty. W tym "czystym" php stworzyles niestety pare bledow
Takze podsumowujac: przestan szukac w winy w smarty. Zacznij wpierw moze zrozumiec, jak wyglada twoja struktura danych, bo z tym masz niesamowity problem
Dobra, zebym nei byl goloslowny
foreach ($tablica as $idCat => $val){ http://www.php.net/echo '<strong>' . $val['nrAuto'] . ' - ' . $val['name'] . ' - ' . $val['model'] . '</strong>'; //!!!!! $val['model'] to tablica. Po grzyba wkladasz to do tekstu? Przeciez to ci da tekst 'array' i nic wiecej foreach ($val['model'] as $value){ http://www.php.net/echo $value['desc'] . ' - ' . $value['kolor'] . '<br>'; //!!!!! $value['kolor'] to tablica. Po grzyba wkladasz to do tekstu? Przeciez to ci da tekst 'array' i nic wiecej foreach (http://www.php.net/array($value['model']) as $row3){ //!!!!$value['model'] wogole nie istnieje!!!!. A ty jeszcze robic z tego tablicu w rezultacie otrzymasz array(null) .... caly ten foreach jest totalnie zbedny!! http://www.php.net/echo $row3['newId'] . ' - ' . $row3['descTwo'] . '<br>'; } } http://www.php.net/echo '<br><br>'; $link[] = $val; }
foreach ($tablica as $idCat => $val){ http://www.php.net/echo '<strong>' . $val['nrAuto'] . ' - ' . $val['name'] . ' - MODELE:</strong>'; foreach ($val['model'] as $value){ http://www.php.net/echo $value['desc'] . ' - KOLORY:<br>'; http://www.php.net/echo $value['kolor']['newId'] . ' ' . $value['kolor']['descTwo'] . '<br>'; } http://www.php.net/echo '<br><br>'; }
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)