![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Panowie przejdę do rzeczy, otóż w czystych phpie mam kod który dziala:
natomiast już w smarcie pokazuje tylko pierwszy znak - wydaje mi się, że smarty odbiera to jako string a nie array i nie wiem jak zmusić w smartach by pokazywało całość:
ktoś pomoże ? Ten post edytował casperii 20.11.2019, 10:38:00 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Chyba dokumentacja sie klania...
nie item="value" a: item=value |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@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"
daje na outpucie: imie => Jan a teraz J nazwisko => Kowals a teraz K Ten post edytował casperii 20.11.2019, 10:51:43 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
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} |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@nospor:
Ten post edytował casperii 20.11.2019, 11:36:18 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
nie
{foreach key="key" from=$var.tablica item=value} {$key} => {$value} --- {$value.imie} <br> {/foreach} a: {$var.tablica.imie} {$var.tablica.nazwisko} |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzięęęęęęęęękuje! jak zawsze bardzo mi pomogłeś (IMG:style_emoticons/default/smile.gif)
@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 ? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
@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. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat to w jaki sposób mam to wyświetlić skoro foreachem mi pobiera tylko pierwszy znak oj zes sie uczepil tego pierwszego znaku.... miales wtedy pierwsze znaki bo leciales po tekscie a nie tablicy. Sadzilem ze juz to przerobilismy.Skoro masz wiecej imion to jak je teraz dodajesz? Bo przeciez nei wkladasz wszystkie ciagle w index IMIE bo nadpisujesz jeden za drugim. Pokaz nowa strukture |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
@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:
Uzyskujemy tablice: O ile w (powtórzę ponownie) czystym phpie działa tak przerzuceniu do tpl - nie działa jak trzeba. Zdaje sobie sprawę , że smarty ostatnią petlę widzi jako string a nie array - tylko czy w smartach istnieje konwersja stringa do array ?
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
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
A o to poprawny kod php
Prosze, majac ten POPRAWNY kod php, moze w koncu bez problemu przeniesiesz to do smarty, bez tworzenia sztucznych pustych tablic itp I sprobuj tez zapamietac (a juz to przerabialismy w pierwszym kodzie z poczatku twojego tematu), ze nie pokazdej tablicy sie iteruje FOREACH. np tutaj: $value['kolor']['newId'] juz sie nie tworzy dodatkowego FOREACH jak to probowales nieudolnie zrobic. Jak znasz indeksy, ktore chcesz wyciagnac to FOREACH jest zbedny. FOREACH jest tyko dla danych DYNAMICZNYCH A, i jeszcze jedno bardzo wazne: Wlacz wyswietlanie wszystkich bledow |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 01:41 |